/* Technical case pages and independently authored browser demonstrations. */
body.portfolio-case{--case-paper:#edf1e9;--case-paper-ink:#193a35;--case-paper-muted:#536c62;--case-paper-line:#c1cfc1;--case-paper-accent:#226c60;--mono:MotionMono,Inter,monospace;background:#07141a;color:#edf4f1;margin:0;font-family:Inter,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
.portfolio-case *{box-sizing:border-box}.portfolio-case a{color:inherit;text-decoration:none}.portfolio-case button,.portfolio-case input,.portfolio-case select{font:inherit}.portfolio-case button,.portfolio-case summary,.portfolio-case select{cursor:pointer}.portfolio-case :focus-visible{outline:2px solid #75dccd;outline-offset:5px}.portfolio-case .study-instrument :focus-visible{outline-color:#226c60}.portfolio-case [hidden]{display:none!important}.portfolio-case section{scroll-margin-top:105px}
.study-skip{position:fixed;left:20px;top:-100px;z-index:100;background:#75dccd;color:#07141a!important;padding:15px}.study-skip:focus{top:15px}.study-main{max-width:1500px;padding:0 6vw;margin:auto}.study-hero{padding:55px 0 38px}.study-back{display:inline-flex;align-items:center;min-height:44px;font-size:12px;color:#9dafb3!important;margin-bottom:30px}.study-eyebrow{color:#75dccd;font:12px/1.6 var(--mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 24px}.study-hero h1{font-weight:400;font-size:clamp(50px,7.6vw,110px);letter-spacing:-.065em;line-height:1.02;margin:0 0 28px;max-width:1100px}.study-lead{font-size:clamp(18px,2vw,26px);line-height:1.5;letter-spacing:-.5px;color:#adbfbd;max-width:850px;margin:0}.study-context{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;font-size:12px;line-height:1.8;margin-top:38px;padding-top:22px;border-top:1px solid #c3e2da24;color:#9dafb3}.study-private{display:flex;align-items:center;gap:9px}.study-private i{width:5px;height:5px;border:1px solid #75dccd;border-radius:50%}.study-instrument{padding:38px;background:var(--case-paper);color:var(--case-paper-ink);margin:25px 0 80px;border-radius:5px;overflow:hidden}.study-instrument-head{display:grid;grid-template-columns:1.2fr 1fr;gap:0 40px;margin-bottom:28px}.study-instrument-head .study-eyebrow{grid-column:1/-1;color:var(--case-paper-accent);margin-bottom:16px}.study-instrument-head h2{font-weight:400;font-size:clamp(28px,3vw,42px);line-height:1.1;letter-spacing:-1.5px;margin:0;max-width:600px}.study-instrument-head>p:last-child{font-size:12px;line-height:1.9;color:var(--case-paper-muted);max-width:410px;justify-self:end;margin:0}.study-reading{margin:0 auto;max-width:1250px}.study-section{display:grid;grid-template-columns:240px minmax(0,1fr);gap:70px;border-top:1px solid #c3e2da24;padding:40px 0}.study-section-label{display:flex;gap:18px;align-items:baseline}.study-section-label>span{font:12px var(--mono);color:#75dccd}.study-section-label h2{font-size:18px;line-height:1.4;font-weight:400;letter-spacing:-.4px;margin:0}.study-prose>p,.study-prose li,.study-reproduce p{font-size:15px;line-height:1.9;color:#adbfbd;margin:0;max-width:850px}.study-equation{padding:22px 25px;background:#10232b;border-left:2px solid #75dccd;overflow:auto;font:13px/1.9 var(--mono);white-space:normal;margin-bottom:22px}.study-method-flow{list-style:none;padding:0;margin:30px 0 12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #c3e2da24}.study-method-flow li{padding:21px 15px 0 0;position:relative}.study-method-flow li:not(:last-child):after{content:'→';position:absolute;right:14px;top:22px;color:#4c7c74}.study-method-flow span{display:block;font:12px var(--mono);color:#75dccd;margin-bottom:17px}.study-method-flow strong{font-size:15px;line-height:1.5;font-weight:400;color:#edf4f1}.study-method-flow p{font-size:12px;line-height:1.8;color:#9dafb3;margin:8px 0 0;max-width:160px}.study-prose .study-caption{font-size:12px;line-height:1.8;color:#7f9798}.study-reproduce{margin-top:24px;border-top:1px solid #c3e2da24;border-bottom:1px solid #c3e2da24}.study-reproduce summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:54px;font-size:13px;color:#75dccd;padding:12px 0}.study-reproduce summary::-webkit-details-marker{display:none}.study-reproduce summary span{font-size:19px}.study-reproduce[open] summary span{transform:rotate(45deg)}.study-reproduce p{padding:0 0 22px;font-size:13px}.study-limits{list-style:none;padding:0;margin:26px 0}.study-limits li{padding:13px 0 13px 20px;position:relative;border-top:1px solid #c3e2da18;font-size:13px}.study-limits li:before{content:'↳';position:absolute;left:0;color:#75dccd}.study-prose .study-source-note{font-size:12px;color:#829a9b;border-left:1px solid #75dccd;padding-left:20px}.study-source-note a{color:#75dccd;display:inline-block;min-height:44px;padding-top:8px}.study-next{padding:55px 0 65px;border-top:1px solid #c3e2da24;margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:80px}.study-lab-link{font-size:clamp(24px,3vw,38px);letter-spacing:-1.3px;line-height:1.25;display:flex;gap:20px;justify-content:space-between;max-width:600px}.study-lab-link span{color:#75dccd}.study-other{display:flex;flex-direction:column}.study-other a{padding:17px 0;border-bottom:1px solid #c3e2da24;display:flex;gap:25px;justify-content:space-between;align-items:center;min-height:48px;font-size:14px}.study-other span{color:#75dccd}.study-footer{padding:25px 5vw;border-top:1px solid #c3e2da24;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:12px;color:#9dafb3}.study-footer a{display:inline-flex;align-items:center;min-height:44px;color:#75dccd}
/* Styles for the established, independent case demonstrations. */
.demo-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:32px}.demo-chart{min-width:0;border:1px solid var(--case-paper-line);padding:12px;background:#00000003}.demo-chart canvas{display:block;width:100%;height:310px}.demo-controls label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:9px;color:var(--case-paper-muted)}.demo-controls input,.demo-controls select{width:100%;padding:12px;background:transparent;color:var(--case-paper-ink);border:1px solid var(--case-paper-line);font:13px var(--mono);margin-bottom:20px;min-height:44px;min-width:0}.demo-controls button,.demo-actions button,.pipeline-buttons button{min-height:44px;padding:12px 16px;background:var(--case-paper-ink);color:var(--case-paper);border:1px solid var(--case-paper-ink);font-size:12px;line-height:1.4}.demo-controls button{width:100%;margin:0 0 9px}.demo-controls button.secondary,.demo-actions button.secondary{background:transparent;color:var(--case-paper-ink);border-color:var(--case-paper-line)}.demo-results{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;padding-top:23px;margin-top:25px;border-top:1px solid var(--case-paper-line)}.demo-results>div>span{display:block;font-size:12px;line-height:1.7;color:var(--case-paper-muted)}.demo-results strong{display:block;font:26px/1.5 var(--mono);font-weight:400;letter-spacing:-1px;color:var(--case-paper-accent);margin:7px 0}.demo-results small{display:block;font-size:12px;line-height:1.8;color:var(--case-paper-muted)}.demo-note{font-size:12px;line-height:1.9;color:var(--case-paper-muted);margin:20px 0 0}.demo-status{font-size:12px;line-height:1.8;margin:12px 0 0;min-height:18px}.demo-legend{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:12px;line-height:1.7;color:var(--case-paper-muted);padding:13px 4px 1px}.demo-legend span{display:flex;gap:6px;align-items:center}.demo-legend i{width:6px;height:6px;border-radius:100%;background:var(--case-paper-accent)}.demo-legend .legend-ref{height:1px;width:15px;border-radius:0;background:var(--case-paper-ink)}
.bfs-shell{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:30px}.bfs-grid{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:4px;aspect-ratio:13/7;padding:15px;border:1px solid var(--case-paper-line);background:#00000003}.bfs-grid [role=row]{display:contents}.bfs-cell{padding:0;min-width:0;border:0;aspect-ratio:1;background:#87977e30;position:relative;transition:background .15s}.bfs-cell.wall{background:#394b41}.bfs-cell.visited{background:#9cb7a6}.bfs-cell.path{background:var(--case-paper-accent)}.bfs-cell.start:after{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:var(--case-paper);left:50%;top:50%;transform:translate(-50%,-50%)}.bfs-cell.goal:after{content:'';position:absolute;width:11px;height:11px;border:1px solid var(--case-paper);left:50%;top:50%;transform:translate(-50%,-50%)}.bfs-cell.start,.bfs-cell.goal{background:var(--case-paper-ink)}.bfs-description p{font-size:12px;line-height:1.9;color:var(--case-paper-muted);margin:0 0 18px}.demo-actions{display:flex;gap:8px;flex-wrap:wrap}.bfs-description .demo-actions button{flex:1}.bfs-stats{font:12px/1.9 var(--mono);margin:22px 0;color:var(--case-paper-accent)}.bfs-grid:focus-within{outline:1px solid var(--case-paper-accent);outline-offset:5px}.pipeline-flow{display:grid;grid-template-columns:1fr 1.75fr 1fr;gap:17px;align-items:stretch;margin:15px 0 25px}.pipeline-node,.pipeline-training{border:1px solid var(--case-paper-line);padding:24px 20px;transition:background .25s,border-color .25s}.pipeline-flow [data-stage].active{border-color:var(--case-paper-accent);background:#7a94821a}.pipeline-flow [data-stage]>span{display:block;font:12px/1.8 var(--mono);letter-spacing:.02em;color:var(--case-paper-muted);margin-bottom:22px}.pipeline-flow strong{font-size:18px;font-weight:400;letter-spacing:-.5px;line-height:1.5}.pipeline-flow p{font-size:12px;line-height:1.9;color:var(--case-paper-muted);margin:20px 0 0}.pipeline-training{border-style:dashed}.pipeline-training>div{display:flex;align-items:center;gap:12px}.pipeline-training>div>strong{font-size:15px;padding:13px 10px;background:#738a7413;flex:1;text-align:center}.pipeline-training>div>b{font-size:17px;font-weight:400;color:var(--case-paper-accent)}.pipeline-buttons{display:flex;gap:8px;margin:14px 0 20px}.pipeline-buttons button{background:transparent;color:var(--case-paper-muted);border-color:var(--case-paper-line);flex:1}.pipeline-buttons button[aria-pressed=true]{background:var(--case-paper-ink);color:var(--case-paper)}.pipeline-copy{display:grid;grid-template-columns:190px 1fr;gap:28px;padding:23px 0;border-top:1px solid var(--case-paper-line)}.pipeline-copy>span{font:12px/1.8 var(--mono);color:var(--case-paper-accent)}.pipeline-copy p{font-size:13px;line-height:1.9;color:var(--case-paper-muted);margin:0;max-width:730px}.tree-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.tree-illustration{background:#738a7409;border:1px solid var(--case-paper-line)}.tree-illustration svg{display:block;width:100%;height:auto}.tree-controls{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--case-paper-line);padding-top:22px}.tree-controls label{display:flex;gap:18px;align-items:center;font-size:12px;color:var(--case-paper-muted)}.tree-controls select{font:13px var(--mono);background:transparent;border:1px solid var(--case-paper-line);padding:11px 18px;color:var(--case-paper-ink);min-height:44px}.tree-controls p{margin:0;font:12px/1.9 var(--mono);color:var(--case-paper-accent)}
@media(max-width:1100px){.study-section{grid-template-columns:190px minmax(0,1fr);gap:40px}.pipeline-flow{grid-template-columns:1fr 1.5fr 1fr;gap:10px}.pipeline-node,.pipeline-training{padding:20px 14px}.pipeline-training>div{gap:8px}.pipeline-training>div>strong{padding:10px 6px;font-size:13px}.study-main{padding:0 5vw}}
@media(max-width:760px){.study-main{padding:0 22px}.study-hero{padding:25px 0 25px}.study-back{margin-bottom:23px;font-size:12px}.study-eyebrow{font-size:12px;margin-bottom:18px}.study-hero h1{font-size:clamp(43px,10.5vw,70px);letter-spacing:-.06em;margin-bottom:23px}.study-lead{font-size:18px;line-height:1.6;letter-spacing:-.4px}.study-context{font-size:12px;gap:14px;margin-top:29px;padding-top:19px;display:grid}.study-instrument{margin:17px -22px 45px;border-radius:0;padding:27px 22px}.study-instrument-head{display:block;margin-bottom:25px}.study-instrument-head h2{font-size:31px;margin-bottom:18px}.study-instrument-head>p:last-child{font-size:12px;max-width:none}.study-section{display:block;padding:28px 0}.study-section-label{margin-bottom:22px;gap:16px}.study-section-label h2{font-size:18px}.study-prose>p,.study-reproduce p{font-size:14px;line-height:1.9}.study-equation{font-size:12px;padding:20px;line-height:1.9}.study-method-flow{grid-template-columns:1fr 1fr;gap:22px 10px;padding-top:22px;margin-top:24px}.study-method-flow li{padding:0 10px 0 0}.study-method-flow li:not(:last-child):after{display:none}.study-method-flow span{margin-bottom:10px}.study-method-flow strong{font-size:15px}.study-method-flow p{font-size:12px;max-width:200px}.study-prose .study-caption{font-size:12px}.study-reproduce p{font-size:13px}.study-limits li{font-size:12px;line-height:1.9}.study-prose .study-source-note{font-size:12px}.study-next{grid-template-columns:1fr;gap:32px;padding:35px 0 45px}.study-lab-link{font-size:31px;letter-spacing:-1px}.study-footer{padding:20px 22px;gap:15px;font-size:12px}.study-footer>span{width:100%;margin-bottom:3px}.study-footer a{min-height:44px}.demo-layout,.bfs-shell{grid-template-columns:minmax(0,1fr);gap:25px}.demo-chart{padding:8px}.demo-chart canvas{height:250px}.demo-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.demo-controls>label:first-child{grid-column:1;grid-row:1}.demo-controls>select{grid-column:1;grid-row:2}.demo-controls>label:nth-of-type(2){grid-column:2;grid-row:1}.demo-controls>input{grid-column:2;grid-row:2}.demo-controls button{font-size:12px;min-width:0;padding:12px 10px}.demo-results{gap:15px}.demo-results strong{font-size:20px;letter-spacing:-.6px}.demo-results>div>span{font-size:12px}.demo-results small{font-size:12px}.demo-legend{font-size:12px;gap:9px 16px}.demo-note,.demo-status{font-size:12px}.bfs-grid{gap:3px;padding:10px}.bfs-description p{font-size:12px}.bfs-stats{font-size:12px}.pipeline-flow{grid-template-columns:1fr;gap:12px}.pipeline-node,.pipeline-training{padding:20px}.pipeline-flow [data-stage]>span{font-size:12px;margin-bottom:12px}.pipeline-flow p{margin-top:10px;font-size:12px}.pipeline-training>div>strong{font-size:15px;padding:13px 10px}.pipeline-copy{grid-template-columns:1fr;gap:13px;padding:21px 0}.pipeline-copy p{font-size:12px}.pipeline-buttons{gap:5px}.pipeline-buttons button{font-size:12px;padding:10px 7px}.tree-pair{grid-template-columns:1fr;gap:15px}.tree-illustration svg{max-height:320px}.tree-controls{flex-wrap:wrap;gap:17px}.tree-controls p{font-size:12px}.bfs-cell.goal:after{width:7px;height:7px}.bfs-cell.start:after{width:5px;height:5px}}
@media(max-width:360px){.study-main{padding:0 18px}.study-instrument{margin-left:-18px;margin-right:-18px;padding-left:18px;padding-right:18px}.study-hero h1{font-size:42px}.study-lead{font-size:17px}.demo-results{grid-template-columns:1fr 1fr}.demo-results>div:last-child{grid-column:1/-1}.pipeline-buttons button{font-size:12px}.study-instrument-head h2{font-size:29px}.study-equation{padding:16px}.demo-controls input,.demo-controls select{padding-left:9px;padding-right:9px}}
html[data-motion=reduce] .bfs-cell,html[data-motion=reduce] .pipeline-node,html[data-motion=reduce] .pipeline-training{transition:none}
@media(prefers-reduced-motion:reduce){html:not([data-motion]) .bfs-cell,html:not([data-motion]) .pipeline-node,html:not([data-motion]) .pipeline-training{transition:none}}

/* Readable diagrams and touch targets without widening the page. */
.study-comparison{display:none}
.study-instrument-head>p:last-child,.bfs-description p{font-size:14px;line-height:1.8}
.demo-controls label,.tree-controls label,.pipeline-copy>span{font-size:12px}
.demo-legend,.demo-note,.demo-status{font-size:12px;line-height:1.8}
.bfs-grid-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-inline:contain;padding:5px 5px 9px;scrollbar-color:#226c60 #cad5c8}
.bfs-grid{grid-template-columns:repeat(13,44px);width:max-content;aspect-ratio:auto}
.bfs-cell{width:44px;height:44px;min-width:44px;min-height:44px}
.bfs-shell>div,.bfs-description{min-width:0}
.study-reading,.study-prose,.study-method-flow,.study-other{min-width:0}
.study-equation{overflow-wrap:anywhere}
@media(max-width:760px){
 .demo-results{grid-template-columns:1fr;gap:17px}
 .demo-results>div:last-child{grid-column:auto}
 .demo-results>div{border-bottom:1px solid var(--case-paper-line);padding-bottom:15px}
 .demo-results strong{font-size:25px}
 .demo-controls button,.pipeline-buttons button{font-size:12px;min-height:48px}
 .bfs-grid{gap:4px;padding:12px}
 .study-prose>p,.study-reproduce p,.study-limits li{font-size:14px}
 .study-method-flow p,.study-caption,.study-source-note{font-size:12px}
 .tree-controls{align-items:flex-start}
}

/* V3.2: reach the instrument sooner while retaining the editorial hierarchy. */
.study-hero{padding:28px 0 24px}
.study-back{margin-bottom:12px}
.study-hero .study-eyebrow{margin-bottom:13px}
.study-hero h1{font-size:clamp(48px,6.4vw,92px);margin-bottom:18px;max-width:1000px}
.study-lead{font-size:clamp(17px,1.75vw,23px);line-height:1.55;max-width:780px}
.study-context{margin-top:23px;padding-top:17px;gap:12px 28px;align-items:baseline}
.study-provenance{color:#829a9b;font-size:12px;line-height:1.65}
.study-source-link{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:#75dccd!important;font-size:12px;line-height:1.6}
.study-source-link:hover{text-decoration:underline;text-underline-offset:4px}
.study-instrument{margin-top:12px;padding:30px}
.study-instrument-head{margin-bottom:22px;align-items:end}
.study-instrument-head .study-eyebrow{margin-bottom:12px}
.study-instrument-head>p.study-demo-description{font-size:14px;line-height:1.7;max-width:370px}
.study-source-note{margin-top:24px;border-top:1px solid #c3e2da24;border-bottom:1px solid #c3e2da24}
.study-source-note summary{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:52px;font-size:13px;color:#75dccd;list-style:none}
.study-source-note summary::-webkit-details-marker{display:none}
.study-source-note summary span{font-size:19px}
.study-source-note[open] summary span{transform:rotate(45deg)}
.study-source-note p{font-size:13px;line-height:1.8;color:#9dafb3;margin:0;padding-bottom:10px}
.study-source-note a{padding-bottom:10px}
.study-reproduce p+p{padding-top:0}
@media(max-width:760px){
 .portfolio-case section{scroll-margin-top:90px}
 .study-hero{padding:16px 0 20px}
 .study-back{margin-bottom:8px}
 .study-hero .study-eyebrow{margin-bottom:10px}
 .study-hero h1{font-size:clamp(37px,9.4vw,60px);line-height:1.04;margin-bottom:15px;letter-spacing:-.055em}
 .study-lead{font-size:17px;line-height:1.5;letter-spacing:-.3px}
 .study-context{display:grid;margin-top:19px;padding-top:14px;gap:7px;font-size:12px}
 .study-provenance{font-size:12px;line-height:1.6}
 .study-instrument{margin-top:8px;padding:23px 22px}
 .study-instrument-head{margin-bottom:19px}
 .study-instrument-head .study-eyebrow{margin-bottom:9px}
 .study-instrument-head h2{font-size:29px;margin-bottom:12px}
 .study-instrument-head>p.study-demo-description{font-size:13px;line-height:1.65;max-width:none}
 .study-source-note p{font-size:13px}
}
@media(max-width:360px){
 .study-hero h1{font-size:36px}
 .study-instrument{padding-left:18px;padding-right:18px}
}
.study-main{min-height:calc(100svh - var(--site-header-height,80px))}
