/* Category-based browsing preserves the visual gallery and the v2 story cards.
   Without JavaScript the controls stay hidden and all work remains readable. */
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.work-filters{display:flex;align-items:center;gap:27px;flex-wrap:wrap}
.filters-gallery{padding:25px clamp(24px,4vw,72px) 0}
.work-filters button{border:0;border-bottom:2px solid transparent;border-radius:0;padding:10px 0;background:transparent;color:inherit;font:500 14px/1.4 Arial,sans-serif;cursor:pointer;transition:color .18s,border-color .18s}
.work-filters button[aria-pressed=true]{border-color:var(--lime);color:#fff}
.work-filters button:hover{color:#fff}
.work-filters button:focus-visible{outline:2px solid var(--lime);outline-offset:5px}
.category-count{margin-left:9px;vertical-align:super;font-size:9px;opacity:.7;font-variant-numeric:tabular-nums}
.work-filters button[data-work-filter=all]{font-size:12px;opacity:.8;margin-left:7px}
.stories-bar{display:flex;justify-content:space-between;align-items:center;gap:25px;flex-wrap:wrap;margin-bottom:36px}
.stories-bar .small-label{margin:0}
.filters-stories{gap:23px}
.filters-stories button{font-size:12px;color:var(--muted)}
.filters-stories button[aria-pressed=true]{color:var(--ink);border-color:#67763a}
.filters-stories button:hover{color:var(--ink)}
.filters-stories button:focus-visible{outline-color:#67763a}
.work-collection .project-group{margin-bottom:0}
.work-collection .project-group+.project-group{margin-top:70px}
.work-collection[data-filtered=true] .project-group{border-top:0;padding-top:0;margin-top:0}
.work-collection .project-group>.section-heading{margin-bottom:43px}
.stories-back{margin-top:45px;font-size:12px}
.work-media{margin:0;position:relative;overflow:hidden;background:#f7f8f7}
.work-media-image{height:335px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.work-media img{width:100%;height:100%;object-fit:cover;display:block}
.work-media.diagram img{object-fit:contain;padding:16px}
.work-media.cnn img{padding:28px}
.work-media figcaption{position:absolute;bottom:10px;left:12px;right:12px;pointer-events:none;font:8px/1.5 Arial,sans-serif;letter-spacing:.01em;color:#323b35}
.work-media.photo figcaption{right:auto;max-width:90%;background:#20271fdb;color:#f7f8ee;padding:4px 6px}
.work-media.diagram .work-media-image{padding-bottom:22px}
.wide-project .work-media-image{height:340px}
/* Hidden siblings must not determine layout: every visible category gets slots. */
.gallery-item[data-slot="0"]{width:clamp(360px,37vw,640px);margin-top:129px}
.gallery-item[data-slot="1"]{width:clamp(235px,25vw,410px);margin-top:15px}
.gallery-item[data-slot="2"]{width:clamp(280px,31vw,480px);margin-top:172px}
.gallery-item[data-slot="3"]{width:clamp(225px,25vw,420px);margin-top:58px}
.gallery-item .work-media-image{height:clamp(285px,29vw,450px)}
.gallery-item[data-slot="1"] .work-media-image{height:clamp(230px,23vw,340px)}
.gallery-item[data-slot="3"] .work-media-image{height:clamp(255px,25vw,355px)}
.gallery-item .work-media figcaption{font-size:7px}
.gallery-item .work-media{filter:saturate(.8);transition:filter .3s}
.gallery-item a:hover .work-media,.gallery-item a:focus-visible .work-media{filter:saturate(1)}
.gallery-media-note{font:10px/1.6 Arial,sans-serif;color:#d5dac7;margin:23px clamp(24px,4vw,72px) 0}
.visual-gallery .gallery-track{min-height:610px}
/* Two personal projects still form one natural sideways canvas. */
.visual-gallery[data-work-category=personal] .gallery-item[data-slot="1"]{width:clamp(330px,33vw,530px);margin-top:40px}
.visual-gallery[data-work-category=personal] .gallery-item[data-slot="1"] .project-art{height:clamp(285px,29vw,450px)}
@media(min-width:1600px){.visual-gallery .gallery-track{min-height:725px}}
@media(max-width:760px){
 .work-filters{gap:17px}.filters-gallery{padding-top:17px}.work-filters button{font-size:12px}.category-count{font-size:8px;margin-left:5px}.work-filters button[data-work-filter=all]{font-size:11px;margin-left:0}
 .stories-bar{gap:16px;margin-bottom:27px}.filters-stories{gap:17px}.filters-stories button{font-size:11px}.work-collection .project-group>.section-heading{margin-bottom:28px}
 .work-media-image,.wide-project .work-media-image{height:290px}.work-media.cnn img{padding:20px}
 .gallery-item[data-slot],.visual-gallery[data-work-category=personal] .gallery-item[data-slot]{width:min(77vw,360px);margin-top:58px}
 .gallery-item[data-slot="1"],.gallery-item[data-slot="3"],.visual-gallery[data-work-category=personal] .gallery-item[data-slot="1"]{margin-top:6px}
 .gallery-item .work-media-image,.gallery-item[data-slot="1"] .work-media-image,.gallery-item[data-slot="3"] .work-media-image,.visual-gallery[data-work-category=personal] .gallery-item[data-slot="1"] .project-art{height:270px}
 .visual-gallery .gallery-track{min-height:445px}.work-media figcaption{font-size:7px}
}
@media(prefers-reduced-motion:reduce){.work-filters button,.work-media{transition:none!important}}
/* Covers were originally on paper; do not inherit olive-gallery foreground. */
.visual-gallery .speech-art,.visual-gallery .glass-art{color:var(--ink)}
.visual-gallery .gallery-item a .frame-name{color:var(--gallery-fg)}

/* One explorer opens an independently scrollable case sheet. The full route
   remains available when JavaScript is unavailable or a link is opened directly. */
.gallery-index{margin:0;font:13px/1.5 Georgia,serif;color:#d0d4c2}
.work-case-dialog{width:min(1040px,calc(100vw - 32px));max-width:1040px;height:min(900px,calc(100vh - 32px));max-height:calc(100vh - 32px);margin:auto;padding:0;border:0;background:#f5f5ee;color:var(--ink);overflow:hidden;box-shadow:0 22px 72px #111a}
.work-case-dialog::backdrop{background:#151a16c9}
.case-dialog-shell{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:clamp(24px,4vw,58px)}
.case-close{position:sticky;z-index:2;top:0;display:flex;align-items:center;gap:12px;margin:0 0 34px auto;border:1px solid #586052;background:#f5f5ee;color:var(--ink);padding:9px 13px;font:600 12px/1.2 Arial,sans-serif;letter-spacing:.04em;cursor:pointer}
.case-close span{font-size:19px;line-height:.65}.case-close:hover{background:#e4e8df}.case-close:focus-visible{outline:2px solid #67763a;outline-offset:3px}
.case-dialog-content{outline:0}.case-study{display:grid;grid-template-columns:minmax(0,.94fr) minmax(280px,1.06fr);gap:clamp(28px,5vw,64px);align-items:start}.case-study .work-media,.case-study .project-art,.case-study .method-cover,.case-study .glass-art{min-width:0;height:clamp(290px,38vw,480px)}
.case-study .work-media-image{height:100%}.case-study .work-media.diagram .work-media-image{height:100%}.case-copy{min-width:0}.case-copy .project-meta{display:flex;justify-content:space-between;gap:16px;margin:0 0 24px;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.case-copy .project-meta span:last-child{color:#67763a}.case-copy h1{margin:0 0 19px;font:600 clamp(34px,4.4vw,62px)/1.04 Georgia,serif;letter-spacing:-.055em}.case-intro{margin:0 0 20px;font:18px/1.65 Georgia,serif;color:#465047}.case-copy .project-facts{margin:0 0 31px;font:600 11px/1.65 Arial,sans-serif;color:#273229}.case-detail{border-top:1px solid var(--line);padding-top:22px}.case-detail h2{margin:0 0 15px;font:600 12px/1.4 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.case-detail p{margin:0 0 17px;font:15px/1.85 Arial,sans-serif;color:var(--muted)}.case-detail .tools-line{margin-top:24px;color:var(--ink)}.case-detail .tools-line strong{display:block;margin-bottom:5px;font-size:10px;letter-spacing:.07em;text-transform:uppercase}
html.case-dialog-open{overflow:hidden}.case-page{width:min(1160px,calc(100% - 48px));margin:0 auto;padding:36px 0 64px}.case-page-back{display:inline-block;margin:0 0 42px;font-size:12px}.case-page .case-study{margin-bottom:55px}
@media(max-width:760px){.gallery-index{font-size:11px;max-width:150px}.work-case-dialog{width:100vw;height:100vh;max-width:none;max-height:none}.case-dialog-shell{padding:20px 20px 38px}.case-close{margin-bottom:24px}.case-study{display:block}.case-study .work-media,.case-study .project-art,.case-study .method-cover,.case-study .glass-art{height:290px;margin-bottom:27px}.case-copy .project-meta{margin-bottom:17px}.case-copy h1{font-size:38px}.case-intro{font-size:16px}.case-detail p{font-size:14px}.case-page{width:min(100% - 32px,1160px);padding-top:24px}.case-page-back{margin-bottom:29px}}
