/* An extension of Projects and case-detail; no global layout or token overrides. */
.public-collection-control{display:flex;gap:8px;margin:0 0 12px;flex-shrink:0}
.public-collection-control[hidden],.public-projects[hidden],.public-project-entry[hidden],.public-project-pages[hidden]{display:none!important}
.public-collection-control button,.public-project-pages button{font:inherit;font-size:13px;min-height:44px;padding:9px 14px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--text);cursor:pointer}
.public-collection-control button{display:inline-flex;gap:10px;align-items:center}
.public-collection-control button[aria-pressed=true]{background:var(--action);border-color:var(--action);color:#fff}
.public-collection-control svg,.public-project-actions svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.public-project-pages button:disabled{opacity:.5;cursor:default}
.public-collection-control button:focus-visible,.public-projects a:focus-visible,.public-project-pages button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
main[data-project-collection=public]>.vx-filter-bar,main[data-project-collection=public]>.vx-project-gallery,main[data-project-collection=public]>.aui-project-host,main[data-project-collection=public]>.vx-endnotes{display:none!important}
.public-projects{margin:24px 0;min-width:0}
.public-projects-heading{display:flex;gap:24px;align-items:baseline;justify-content:space-between;margin-bottom:16px}
.public-projects h2{font-size:clamp(24px,2.2vw,34px);margin:0 0 6px;letter-spacing:-.025em}
.public-projects-heading p{margin:0;color:var(--muted);font-size:14px}
.public-project-total{white-space:nowrap}
.public-project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 40px}
.public-project-entry{border-top:1px solid var(--line);padding:18px 0;display:flex;flex-direction:column;gap:12px;min-width:0}
.public-project-entry h3{font-size:23px;line-height:1.2;margin:0 0 8px;letter-spacing:-.025em}
.public-project-entry h3 a{color:var(--text);text-decoration:none}
.public-project-entry h3 a:hover{color:var(--accent)}
.public-project-entry p{font-size:14px;line-height:1.5;margin:0;max-width:65ch}
.public-project-technologies{display:flex;gap:10px 18px;flex-wrap:wrap;list-style:none;padding:0;margin:0}
.public-project-technologies li{display:flex;align-items:center;gap:7px;font-size:12px}
.public-project-technologies img,.public-tech-detail img{object-fit:contain;width:28px;height:28px;flex-shrink:0}
.public-project-validation{color:var(--muted)}
.public-project-actions{display:flex;gap:16px 24px;flex-wrap:wrap;margin-top:auto}
.public-project-actions a{min-height:44px;display:inline-flex;align-items:center;gap:8px;font-size:13px}
.public-project-entry:only-child{grid-column:1/-1;max-width:780px}
.public-project-copy{display:flex;flex-direction:column;gap:12px;min-width:0}
.public-project-entry.has-artwork{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:center}
.public-project-entry.has-artwork:only-child{max-width:none;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px}
.public-project-visual{display:block;min-width:0;align-self:stretch}
.public-project-visual img{display:block;width:100%;height:100%;max-height:340px;object-fit:contain}
.public-project-visual:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.public-project-copy .public-project-actions{margin-top:4px}
.public-repository-action{margin-left:auto;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.public-project-detail .case-breadcrumb .case-read-all{margin-left:16px}
.public-detail-art img{width:100%;object-fit:contain}
.public-project-pages{display:flex;justify-content:flex-end;align-items:center;gap:16px;margin-top:8px;font-size:13px}
.public-validation-label{font-size:18px;font-weight:700;margin:12px 0 8px;color:var(--accent)}
.public-tech-detail,.public-evidence-list{list-style:none;margin:0;padding:0}
.public-tech-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}
.public-tech-detail li{display:flex;align-items:flex-start;gap:12px}
.public-tech-detail h4{margin:0 0 6px;font-size:15px}
.public-project-detail .public-tech-detail p,.public-project-detail .public-evidence-list p{margin:0;padding:0;font-size:13px;line-height:1.5}
.public-evidence-list li+li{margin-top:14px}
.public-limitations{padding-left:18px;margin:0;line-height:1.5;font-size:13px}
.public-limitations li+li{margin-top:10px}
.public-pending{color:var(--muted);font-size:13px}
.public-capture-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.public-capture{margin:0;min-width:0}
.public-capture-preview{display:block;position:relative;background:#f5f6f7;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.public-capture-preview img{display:block;width:100%;height:120px;object-fit:cover;object-position:center top}
.public-capture-preview>span{position:absolute;bottom:7px;right:7px;display:flex;gap:5px;align-items:center;background:var(--bg);color:var(--text);padding:5px 8px;font-size:11px;border:1px solid var(--line);border-radius:4px}
.public-capture svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}
.public-project-detail .public-capture-note{font-size:12px;margin:0 0 10px;line-height:1.5;color:var(--muted)}
.public-project-detail .public-capture h4{font-size:14px;margin:8px 0 4px;line-height:1.35}
.public-project-detail .public-capture figcaption p{font-size:12px;line-height:1.5;margin:0 0 3px}
.public-capture figcaption>a{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;min-height:28px;text-underline-offset:3px}
.public-capture a:focus-visible,.public-capture-dialog :is(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.public-capture-dialog{box-sizing:border-box;width:min(1800px,calc(100vw - 32px));max-width:none;height:92svh;max-height:92svh;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text)}
.public-capture-dialog[open]{display:flex;flex-direction:column}
.public-capture-dialog::backdrop{background:rgb(0 0 0 / .72)}
.public-capture-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--line)}
.public-capture-dialog h2{font-size:20px;line-height:1.3;margin:0}
.public-capture-dialog button{min-height:44px;padding:8px 16px;font:inherit;font-size:14px;background:transparent;color:var(--text);border:1px solid var(--line);border-radius:6px;cursor:pointer}
.public-capture-reader{overflow:auto;padding:16px 20px;overscroll-behavior:contain;scrollbar-color:var(--muted) var(--bg)}
.public-capture-reader p{font-size:14px;line-height:1.5;margin:0;max-width:75ch}
.public-capture-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin:8px 0 12px}
.public-capture-links a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--accent);text-underline-offset:4px}
.public-capture-image{overflow:auto;max-height:calc(92svh - 220px);overscroll-behavior:contain;scrollbar-color:var(--muted) var(--bg)}
.public-capture-reader img{display:block;width:100%;height:auto;background:#fff}
.public-capture-image.is-enlarged img{width:max(150%,1000px);max-width:none}
body:has(.public-capture-dialog[open]){overflow:hidden}
@media(min-width:1280px) and (min-height:720px){
 .public-collection-control{margin-bottom:8px}
 .public-projects-heading{margin-bottom:8px}
 .public-project-list[data-visible-count="1"]>.public-project-entry.has-artwork:not([hidden]){grid-column:1/-1;max-width:none;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px}
 main[data-project-collection=public] .public-projects{flex:1;min-height:0;margin:0;display:flex;flex-direction:column}
 main[data-project-collection=public] .public-project-list{flex:1;align-content:start}
 .public-project-entry{padding:12px 0;gap:8px}
 .public-project-entry h3{font-size:21px}
 .public-project-pages{margin-top:auto}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-intro{grid-template-columns:1.15fr 1fr;gap:12px 32px;align-items:start}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-results{align-self:start}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-validation-label{font-size:17px;line-height:1.35;margin:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] #case-panel-stack{display:block}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-tech-detail{row-gap:12px}
 .public-project-visual img{max-height:clamp(240px,calc(100svh - 440px),340px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-evidence-columns{grid-template-columns:1.4fr 1fr;gap:24px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-evidence-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-evidence-list li+li{margin:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-evidence-list .text-link{margin:0;padding:0;line-height:1.5}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-evidence-list p{font-size:11px;line-height:1.5;margin:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-limitations{font-size:12px;line-height:1.5}

}

@media(max-width:767px),(max-width:950px) and (max-height:500px){
 .public-projects-heading{align-items:flex-start;gap:10px;flex-direction:column}
 .public-project-list,.public-tech-detail{grid-template-columns:1fr}
 .public-projects-heading p,.public-project-entry p{font-size:14px}
 .public-project-entry{padding:20px 0}
 .public-collection-control{flex-wrap:wrap}
 .public-project-entry.has-artwork,.public-project-entry.has-artwork:only-child{grid-template-columns:1fr;gap:12px}
 .public-project-visual img{height:auto;max-height:250px}
 .public-project-detail .case-breadcrumb{flex-wrap:wrap}
 .public-detail-art{grid-row:2;margin:0}
 .public-detail-art img{height:230px}
 .public-detail-art figcaption{font-size:11px;line-height:1.4;text-align:center;margin:8px 0 12px}
 .public-capture-grid{grid-template-columns:1fr;gap:24px}
 .public-capture-preview img{height:200px}
 .public-capture figcaption>a{min-height:44px;font-size:12px}
 .public-capture-dialog header{padding:10px 14px}
 .public-capture-dialog h2{font-size:17px}
 .public-capture-reader{padding:14px}
}
.public-title-row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.public-title-row .text-link{white-space:nowrap;font-size:13px;flex-shrink:0}
.public-project-detail .case-next>a>span:first-child{display:flex;flex-direction:column;gap:4px}
@media(min-width:1280px) and (min-height:720px){
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-intro{grid-template-columns:1.2fr 1fr;padding-bottom:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .vx-main{gap:6px}
 .case-detail.public-project-detail.public-case-flow.case-enhanced[data-reading=tabs]{height:auto;min-height:100svh}
 .case-detail.public-project-detail.public-case-flow.case-enhanced[data-reading=tabs] .vx-main{grid-template-rows:36px auto auto auto;flex-shrink:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-intro.public-illustrated-intro{grid-template-columns:1.45fr .95fr 1.1fr;gap:24px;align-items:center}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-illustrated-intro .case-results{align-self:center}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-detail-art{grid-column:3;grid-row:1;min-width:0;align-self:center;margin:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-detail-art img{height:clamp(150px,22vh,240px);width:100%;object-fit:contain}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-detail-art figcaption{font-size:10px;text-align:right;margin-top:3px}
 main[data-project-collection=public] .public-project-list:has(>.public-project-entry:only-child){align-content:center}
 .public-project-entry.has-artwork:only-child .public-project-copy{gap:16px}
}

/* Spend the available desktop height on reading and artwork, rather than a void.
   Small desktop windows retain the compact baseline; taller windows scale up.
   The nine original case pages do not use this scope. */
@media screen and (min-width:1280px) and (min-height:720px){
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs]{
  --public-body:clamp(13px,calc(1.2svh + 4.36px),20px);
  --public-small:clamp(11px,calc(.7svh + 5.96px),16px);
  --public-label:clamp(13px,calc(.9svh + 6.52px),19px);
  --public-caption:clamp(12px,calc(1svh + 4.8px),18px);
  --public-gap:clamp(8px,calc(2svh - 6.4px),20px);
 }
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .vx-main{gap:var(--public-gap)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-heading h1{font-size:clamp(28px,calc(4.4svh - 3.68px),56px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-summary{font-size:var(--public-body);line-height:1.6}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-breadcrumb{font-size:var(--public-small)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-facts{gap:var(--public-gap)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-facts dt{font-size:var(--public-small)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-facts dd{font-size:var(--public-caption)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-results h2{font-size:clamp(15px,1.8svh,24px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-validation-label{font-size:clamp(17px,2svh,28px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-qualification{font-size:var(--public-small);line-height:1.6}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-detail-art img{height:clamp(158px,calc(38svh - 115px),400px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-detail-art figcaption{font-size:var(--public-small)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-reading{align-items:stretch}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-context{align-self:start}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-context h2{font-size:clamp(19px,calc(1.9svh + 5.32px),30px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-context h3{font-size:var(--public-label);margin-top:clamp(16px,2.5svh,32px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-context>p{font-size:var(--public-body)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-engineering{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-tabs{grid-row:1;margin-bottom:var(--public-gap)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-tabs button{font-size:var(--public-label);min-height:44px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-panel{grid-row:2;min-height:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-process{height:100%;grid-template-rows:repeat(2,minmax(min-content,1fr));gap:var(--public-gap) 32px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-process h4{font-size:var(--public-label)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] :is(.case-process p,.case-decision-copy p){font-size:var(--public-body)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-step{width:clamp(24px,2.5svh,34px);height:clamp(24px,2.5svh,34px);font-size:var(--public-small)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-decision summary{padding-block:var(--public-gap)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-decision summary strong{font-size:var(--public-caption)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-decision-copy :is(h4,.case-selected-choice){font-size:var(--public-label)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-tech-detail{gap:clamp(12px,2svh,28px) 32px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-tech-detail img{width:clamp(28px,4svh,52px);height:clamp(28px,4svh,52px)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-tech-detail h4{font-size:var(--public-label)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-tech-detail p{font-size:var(--public-body)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-evidence h4{font-size:var(--public-label)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-evidence-list{gap:var(--public-gap) 24px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-evidence-list .text-link{font-size:var(--public-caption)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-evidence-list p{font-size:var(--public-small)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-limitations{font-size:var(--public-caption)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] #case-panel-captures{display:grid;grid-template-rows:auto minmax(0,1fr)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture-note{font-size:var(--public-small)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture-grid{min-height:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture{display:grid;grid-template-rows:minmax(90px,1fr) auto;min-height:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture-preview{min-height:0}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture-preview img{height:100%;min-height:90px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture-preview>span{font-size:var(--public-small);min-height:36px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture h4{font-size:var(--public-label);margin-top:12px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture figcaption p{font-size:var(--public-caption)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .public-capture figcaption>a{font-size:var(--public-small);min-height:32px}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-next>a strong{font-size:var(--public-label)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-next>a span span{font-size:var(--public-small)}
 .case-detail.public-project-detail.case-enhanced[data-reading=tabs] .case-conversation :is(h2,.button){font-size:var(--public-label)}
 .case-detail.public-project-detail.public-case-flow.case-enhanced[data-reading=tabs] .case-process{height:auto}
 .case-detail.public-project-detail.public-case-flow.case-enhanced[data-reading=tabs] .public-capture-preview img{height:clamp(180px,28svh,360px)}
}
