/* Portfolio explorer: multiple facets, accessible native controls and restrained motion. */
.explorer-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}.explorer-intro .eyebrow{font-size:10px;letter-spacing:1px}.explorer-intro>span:last-child{font-size:12px;color:var(--muted)}.folio-tools{grid-template-columns:minmax(0,1fr) auto}.folio-sort select{font-size:13px}.folio-search input{font-size:15px}.industry-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:28px 0 15px;font-size:13px}.industry-heading>span{font-weight:500}.industry-heading small{font-size:11px;font-weight:400;color:var(--muted);margin-left:12px}.industry-heading>button{font:12px 'DM Sans',sans-serif;color:var(--muted);padding:9px 0;background:transparent;border:0;border-bottom:1px solid transparent;cursor:pointer}.industry-heading>button[aria-pressed=true]{color:var(--ink);border-color:#9baa70}.sector-filters{gap:9px;margin-bottom:24px}.filter-chip{display:flex;align-items:center;gap:9px;cursor:pointer;border:1px solid var(--line);padding:11px 14px;border-radius:30px;font-size:12px;background:#fbfcf6;transition:background .22s,border-color .22s,color .22s;min-height:43px}.filter-chip input{appearance:none;position:absolute;opacity:0;width:1px;height:1px}.filter-chip:has(input:checked){background:var(--ink);color:var(--paper);border-color:var(--ink)}.filter-chip:has(input:focus-visible){outline:2px solid #8ca237;outline-offset:4px}.filter-chip small{font-size:10px;opacity:.65;min-width:8px}.filter-chip:hover{border-color:#9eae78}.has-zero:not(:has(input:checked)){opacity:.55}.advanced-filters{border:1px solid var(--line);border-radius:15px;background:#f0f2e9;overflow:hidden;margin-bottom:25px}.advanced-filters summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;padding:19px 22px;font-size:13px;list-style:none}.advanced-filters summary::-webkit-details-marker{display:none}.advanced-filters summary>span{display:flex;align-items:center;gap:12px}.advanced-filters summary svg{width:19px;height:19px;flex-shrink:0;transition:transform .3s}.advanced-filters[open] summary>svg{transform:rotate(180deg)}.advanced-filters summary b{display:grid;place-items:center;background:var(--lime);font-size:10px;width:22px;height:22px;border-radius:50%;font-weight:500}.advanced-filters[open] summary{border-bottom:1px solid var(--line)}.advanced-content{display:grid;grid-template-columns:1.5fr 1fr;gap:45px;padding:28px}.feature-field{padding:0;margin:0;min-width:0;border:0}.feature-field legend,.style-field>label{font-size:14px;font-weight:500;padding:0}.feature-field>p{font-size:12px;color:var(--muted);margin:10px 0 20px;line-height:1.8}.feature-options{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.feature-option{display:flex;align-items:center;gap:10px;font-size:12px;cursor:pointer;line-height:1.6;min-height:27px}.feature-option input{width:16px;height:16px;accent-color:#819540;margin:0;flex-shrink:0}.feature-option small{font-size:10px;color:var(--muted);margin-left:auto}.feature-logic{display:flex;flex-direction:column;align-items:start;gap:12px;margin-top:26px;font-size:11px;color:var(--muted)}.feature-logic select,.style-field select{font:12px 'DM Sans',sans-serif;color:var(--ink);border:1px solid #cbd1bf;border-radius:9px;padding:12px;background:#fbfcf5;max-width:100%;cursor:pointer}.feature-logic select{width:100%}.style-field>label{display:block;margin-bottom:20px}.style-field select{width:100%;font-size:13px;padding:14px}.filter-hint{display:flex;gap:14px;border-top:1px solid var(--line);padding-top:25px;margin-top:30px}.filter-hint-symbol{height:26px;width:26px;border:1px solid #b8c49e;border-radius:50%;display:grid;place-items:center;font-size:18px;flex-shrink:0;color:#7b8c58}.filter-hint p{font-size:12px;line-height:1.9;color:var(--muted);margin:0}.active-filter-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 0 23px;border-bottom:1px solid var(--line);margin-bottom:20px}.active-filter-row[hidden]{display:none}.active-filter-row>button{font:12px 'DM Sans',sans-serif;background:none;border:0;border-bottom:1px solid #a4b082;padding:8px 0;cursor:pointer;white-space:nowrap;color:var(--muted)}#active-filters{display:flex;gap:8px;flex-wrap:wrap;min-width:0}.active-chip{display:flex;align-items:center;gap:13px;font:11px 'DM Sans',sans-serif;background:#e9eddd;border:1px solid #d0d8bd;color:#54633a;padding:9px 12px;border-radius:7px;cursor:pointer;min-height:35px;max-width:100%;text-align:left}.active-chip>span:first-child{overflow-wrap:anywhere}.active-chip>span:last-child{font-size:18px;line-height:1}.active-chip:hover{background:var(--lime)}.results-bar{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:27px}#project-results{font-size:13px;line-height:1.8}.result-actions{display:flex;align-items:center;gap:23px}.copy-filter-link{display:flex;gap:12px;align-items:center;font:11px 'DM Sans',sans-serif;cursor:pointer;border:0;background:none;color:var(--muted);padding:12px 0}.copy-filter-link svg{height:13px;width:13px}.view-toggle{display:flex;gap:4px;border:1px solid var(--line);border-radius:10px;padding:4px}.view-toggle>button{height:35px;width:38px;display:grid;place-items:center;cursor:pointer;border:0;border-radius:7px;background:transparent;color:#8d957d;transition:background .25s,color .25s}.view-toggle>button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.view-toggle svg{width:18px;height:18px}.copy-status{font-size:12px;color:#6c813e;line-height:1.8;margin:0 0 20px}.copy-status:empty{display:none}#copy-fallback{font-size:12px;display:block;margin-bottom:25px;color:var(--muted)}#copy-fallback[hidden]{display:none}#copy-url{display:block;width:100%;font:13px 'DM Sans',sans-serif;color:var(--ink);padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcf6;margin-top:10px}.folio-detail-link{display:inline-flex;align-items:center;gap:20px;font-size:12px;margin-top:23px;padding:8px 0;border-bottom:1px solid #acb98d}.folio-detail-link svg{width:15px;height:15px;transition:transform .3s}.folio-detail-link:hover svg{transform:translate(3px,-3px)}.folio-grid{gap:50px 30px}.folio-meta{font-size:10px}.folio-preview-label{font-size:10px;letter-spacing:.3px}.folio-title h2{font-size:32px}.folio-info>p{font-size:14px;line-height:1.9}.folio-info .project-tags li{font-size:11px;padding:8px 11px}.folio-card{contain:layout style;transform-origin:center top}.folio-grid.is-filtered .folio-card:first-child{display:block;grid-column:auto;border:0;border-radius:0;background:transparent}.folio-grid.is-filtered .folio-card:first-child .folio-preview{border-radius:17px}.folio-grid.is-filtered .folio-card:first-child .folio-info{padding:25px 3px 0;align-self:auto}.folio-grid.view-list{grid-template-columns:1fr;gap:25px}.folio-grid.view-list .folio-card,.folio-grid.view-list .folio-card:first-child{display:grid;grid-template-columns:1fr 1.15fr;border:1px solid var(--line);border-radius:17px;background:#fafbf5;overflow:hidden;grid-column:auto;align-items:center;gap:0}.folio-grid.view-list .folio-card .folio-preview,.folio-grid.view-list .folio-card:first-child .folio-preview{border-radius:0;align-self:stretch;display:flex;flex-direction:column;justify-content:center;padding:25px}.folio-grid.view-list .folio-card .folio-info,.folio-grid.view-list .folio-card:first-child .folio-info{padding:27px 30px}.folio-grid.view-list .folio-info>p{margin:17px 0}.folio-grid.view-list .folio-info .project-tags{margin-top:15px}.folio-grid.view-list .folio-title h2{font-size:29px}.folio-grid.view-list .folio-preview-label{margin-bottom:20px}.folio-grid.view-list .folio-detail-link{margin-top:18px}.works-motion .page-reveal{transition-delay:var(--folio-delay,0ms)}.folio-preview{perspective:1000px}.folio-browser{transform-origin:center;transform:rotateX(2deg);transition:transform .7s cubic-bezier(.16,1,.3,1),box-shadow .7s}.folio-hover{transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .35s}.experience-numbers.is-counting{box-shadow:0 0 0 5px #d5fa451c}.teaser-images.preview-awake .teaser-window{animation:catalog-preview-float 7s ease-in-out infinite}.teaser-images.preview-awake .teaser-forma{animation-delay:-3.5s}.teaser-images:not(.preview-awake) .teaser-window{animation-play-state:paused}.teaser-images .teaser-window{will-change:auto}.folio-heading h1 .highlight{display:inline-block}.folio-note{font-size:11px;line-height:1.9}.folio-outro{position:relative;isolation:isolate}.folio-outro:before{content:'';position:absolute;width:280px;height:280px;right:-70px;top:-130px;border-radius:50%;border:1px solid #d5fa4525;box-shadow:0 0 0 35px #d5fa4505,0 0 0 70px #d5fa4503;z-index:-1;pointer-events:none}.button:active{scale:.98;transition:scale .15s}.experience-stat{transition:background .35s}.folio-empty{animation:catalog-empty-in .45s ease both}.folio-empty[hidden]{display:none!important}.folio-info .project-tags{list-style:none}.filter-chip small,.feature-option small{font-variant-numeric:tabular-nums}
@keyframes catalog-preview-float{0%,100%{translate:0 0}50%{translate:0 -8px}}@keyframes catalog-empty-in{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(hover:hover) and (pointer:fine){.folio-preview:hover .folio-browser{transform:rotateX(var(--preview-x,0deg)) rotateY(var(--preview-y,0deg)) translateY(-3px);box-shadow:0 24px 35px #26301d25}.folio-preview:hover .folio-hover{transform:translateY(0);opacity:1}.teaser-images:hover .teaser-window{animation-play-state:paused}}
@media(max-width:1000px){.advanced-content{gap:30px;padding:24px;grid-template-columns:1.4fr 1fr}.feature-options{gap:12px 20px;grid-template-columns:1fr}.filter-chip{font-size:11px;padding:10px 13px}.folio-grid.view-list .folio-card,.folio-grid.view-list .folio-card:first-child{grid-template-columns:1fr 1fr}.folio-grid.view-list .folio-card .folio-info{padding:23px}.folio-grid.view-list .folio-title h2{font-size:26px}}
@media(max-width:650px){.explorer-intro{display:block;margin-bottom:20px}.explorer-intro .eyebrow{font-size:9px;line-height:1.9;letter-spacing:.6px}.explorer-intro>span:last-child{display:block;font-size:12px;margin-top:10px}.folio-tools{grid-template-columns:1fr;gap:15px}.folio-sort{font-size:12px}.folio-sort select{font-size:13px;padding:12px 13px}.folio-search input{font-size:16px}.folio-search input::placeholder{font-size:13px}.industry-heading{margin:24px 0 13px;font-size:13px;align-items:flex-start;gap:15px}.industry-heading small{display:block;font-size:11px;margin:5px 0 0}.industry-heading>button{font-size:11px;line-height:1.5;max-width:95px;text-align:right;padding:3px 0 7px}.sector-filters{gap:8px;margin-bottom:20px}.filter-chip{padding:10px 13px;font-size:11px;min-height:40px;gap:8px}.filter-chip small{font-size:9px}.advanced-filters{margin-bottom:20px;border-radius:12px}.advanced-filters summary{font-size:13px;padding:18px 16px}.advanced-content{display:block;padding:23px 18px}.feature-field legend,.style-field>label{font-size:14px}.feature-field>p{font-size:12px;margin-top:12px}.feature-options{grid-template-columns:1fr;gap:8px}.feature-option{font-size:13px;min-height:36px;gap:12px}.feature-option small{font-size:11px}.feature-option input{height:17px;width:17px}.feature-logic{font-size:12px;margin-top:20px}.feature-logic select,.style-field select{font-size:16px;padding:13px;width:100%;min-width:0}.style-field{margin-top:28px;padding-top:25px;border-top:1px solid var(--line)}.style-field>label{margin-bottom:15px}.filter-hint{margin-top:22px;padding-top:20px}.filter-hint p{font-size:12px}.active-filter-row{align-items:flex-start;gap:15px;padding-bottom:20px;flex-direction:column}.active-filter-row>button{font-size:12px}.active-chip{font-size:11px;min-height:37px;padding:9px 11px}.results-bar{gap:15px;margin-bottom:25px;align-items:center;flex-wrap:wrap}#project-results{font-size:12px}.result-actions{gap:18px;margin-left:auto}.copy-filter-link{font-size:10px;gap:7px;max-width:100px;line-height:1.5;padding:10px 0}.copy-filter-link svg{height:11px;width:11px}.view-toggle>button{height:36px;width:35px}.view-toggle svg{height:17px;width:17px}.copy-status{font-size:11px}.folio-grid{gap:38px}.folio-preview-label{font-size:9px;line-height:1.7}.folio-preview-label>span:last-child{font-size:9px}.folio-meta{font-size:9px;line-height:1.7;letter-spacing:.1px;gap:10px}.folio-title h2{font-size:30px}.folio-title h2>span{font-size:13px}.folio-info>p{font-size:14px;line-height:1.85}.folio-info .project-tags{gap:6px}.folio-info .project-tags li{font-size:10px;padding:7px 10px}.folio-card:first-child .folio-info{padding-top:23px}.folio-detail-link{font-size:12px;margin-top:18px}.folio-grid.is-filtered .folio-card:first-child .folio-info{padding:23px 2px 0}.folio-grid.is-filtered .folio-card:first-child .folio-preview{border-radius:15px}.folio-grid.view-list{gap:20px}.folio-grid.view-list .folio-card,.folio-grid.view-list .folio-card:first-child{grid-template-columns:105px minmax(0,1fr);gap:15px;border:0;border-radius:0;background:transparent;align-items:start}.folio-grid.view-list .folio-card .folio-preview,.folio-grid.view-list .folio-card:first-child .folio-preview{padding:14px 8px 15px;justify-content:flex-start;align-self:start;border-radius:9px}.folio-grid.view-list .folio-preview-label{display:none}.folio-grid.view-list .folio-browser{border-radius:4px}.folio-grid.view-list .folio-browser-bar{height:10px;padding:0 4px}.folio-grid.view-list .folio-browser-bar i{height:2px;width:2px}.folio-grid.view-list .folio-browser-bar>span:not(:first-child){display:none}.folio-grid.view-list .folio-hover{display:none}.folio-grid.view-list .folio-card .folio-info,.folio-grid.view-list .folio-card:first-child .folio-info{padding:0}.folio-grid.view-list .folio-meta{font-size:9px;margin-bottom:10px}.folio-grid.view-list .folio-meta>span:last-child{display:none}.folio-grid.view-list .folio-title h2{font-size:21px;letter-spacing:-.8px}.folio-grid.view-list .folio-title h2>span{font-size:11px;margin-top:5px}.folio-grid.view-list .folio-title-arrow{display:none}.folio-grid.view-list .folio-info>p{font-size:12px;line-height:1.8;margin:13px 0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.folio-grid.view-list .folio-info .project-tags{margin-top:12px;gap:5px}.folio-grid.view-list .folio-info .project-tags li{font-size:9px;padding:6px 8px}.folio-grid.view-list .folio-info .project-tags li:nth-child(n+3){display:none}.folio-grid.view-list .folio-detail-link{font-size:11px;margin-top:10px;gap:15px}.folio-grid.view-list .folio-detail-link svg{width:12px;height:12px}.folio-note{font-size:11px}.folio-heading h1{font-size:clamp(36px,9.4vw,51px)}.folio-outro p{font-size:13px}.folio-outro .eyebrow{font-size:8px;line-height:1.8}}
@view-transition{navigation:auto}::view-transition-old(root){animation:catalog-page-out .18s ease both}::view-transition-new(root){animation:catalog-page-in .35s ease both}@keyframes catalog-page-out{to{opacity:0}}@keyframes catalog-page-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.teaser-images.preview-awake .teaser-window,.folio-empty{animation:none}.works-motion .page-reveal{opacity:1;translate:none;transition:none}.folio-browser,.folio-preview:hover .folio-browser{transform:none;transition:none}.button:active{scale:1}::view-transition-old(root),::view-transition-new(root){animation:none}}

/* One entry point, all catalog controls in an accessible modal drawer. */
.compact-tools{grid-template-columns:minmax(0,1fr) auto;align-items:stretch;margin-bottom:26px}.filter-launch{display:flex;align-items:center;justify-content:center;gap:13px;min-width:157px;padding:18px 25px;border:1px solid var(--ink);border-radius:50px;background:var(--ink);color:var(--paper);font-size:14px;cursor:pointer;transition:background .2s,transform .2s}.filter-launch:hover{background:#3e4734;transform:translateY(-2px)}.filter-launch svg{width:21px;height:21px}.filter-launch svg circle{fill:var(--ink)}.filter-launch b{min-width:22px;line-height:22px;border-radius:50%;background:#d8f343;color:#222;font-size:11px}.filter-launch b[hidden]{display:none}body.filters-open{overflow:hidden}
dialog.filter-panel{position:fixed;inset:0 0 0 auto;width:min(760px,96vw);height:100dvh;max-height:100dvh;max-width:none;margin:0;padding:0;border:0;border-left:1px solid var(--line);border-radius:24px 0 0 24px;color:var(--ink);background:var(--paper);box-shadow:-20px 0 100px #2223;font-family:inherit;overflow:hidden}dialog.filter-panel:not([open]){display:none}dialog.filter-panel[open]{display:flex;flex-direction:column;animation:filter-enter .28s cubic-bezier(.16,1,.3,1)}.filter-panel::backdrop{background:#20261c70;backdrop-filter:blur(5px)}.filter-panel-head{position:relative;padding:35px 36px 26px;border-bottom:1px solid var(--line);flex-shrink:0}.filter-panel-head .eyebrow{font-size:10px;letter-spacing:1.5px}.filter-panel-head h2{font-size:32px;letter-spacing:-1.4px;font-weight:500;margin:14px 35px 12px 0}.filter-panel-head p{font-size:13px;line-height:1.7;color:#66705f}.filter-close{position:absolute;right:25px;top:25px;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:27px;cursor:pointer}.filter-close:hover{background:#e8edda}.filter-panel-body{padding:0 36px 30px;overflow:auto;overscroll-behavior:contain;flex:1;min-height:0}.filter-panel .industry-heading{margin-top:28px;font-size:14px}.filter-panel .industry-heading small{font-size:11px}.filter-panel .sector-filters{margin-bottom:28px;gap:8px}.filter-panel .filter-chip{padding:11px 13px;font-size:12px;min-height:43px}.filter-panel .filter-chip small{font-size:10px}.filter-panel .advanced-content{padding:27px 0;border-top:1px solid var(--line);grid-template-columns:1fr;gap:28px}.filter-panel .feature-field legend,.filter-panel .style-field>label{font-size:15px}.filter-panel .feature-field>p{font-size:12px}.filter-panel .feature-options{grid-template-columns:1fr 1fr;gap:10px 20px}.filter-panel .feature-option{font-size:13px;min-height:34px}.filter-panel .feature-option small{font-size:11px}.filter-panel .feature-option input{width:17px;height:17px}.filter-panel .feature-logic{font-size:12px}.filter-panel select{font-size:14px;min-height:46px}.filter-panel .style-field{border-top:1px solid var(--line);padding-top:25px}.filter-panel .filter-hint{margin-top:20px}.filter-panel .filter-hint p{font-size:12px;line-height:1.8}.display-settings{border-top:1px solid var(--line);padding-top:25px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px}.filter-panel .folio-sort{display:grid;gap:12px;font-size:13px}.display-settings>div>span{display:block;font-size:13px;margin-bottom:12px}.display-settings .view-toggle>button{width:46px;height:46px}.filter-panel-footer{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 36px;background:var(--paper);border-top:1px solid var(--line)}.filter-panel-footer>button{font:inherit;font-size:13px;cursor:pointer}.filter-panel-footer>button:first-child{background:none;border:0;text-decoration:underline;text-underline-offset:5px}.filter-panel-footer .filter-apply{border:0;border-radius:40px;background:var(--ink);color:var(--paper);padding:17px 24px;display:flex;align-items:center;gap:20px}.filter-apply span{display:grid;place-items:center;background:#d8f343;color:#222;min-width:27px;height:27px;padding:0 5px;border-radius:50%;font-size:12px}.filter-panel button:focus-visible,.filter-launch:focus-visible{outline:2px solid #729529;outline-offset:4px}@keyframes filter-enter{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:650px){.compact-tools{grid-template-columns:minmax(0,1fr) auto;gap:10px}.compact-tools .folio-search{min-width:0}.compact-tools .folio-search kbd{display:none}.compact-tools .folio-search input{padding-right:10px;font-size:16px}.compact-tools .folio-search input::placeholder{font-size:12px}.filter-launch{min-width:0;gap:7px;font-size:12px;padding:15px}.filter-launch svg{width:18px;height:18px}.filter-launch b{font-size:10px;min-width:19px;line-height:19px}dialog.filter-panel{width:100%;border-radius:0}.filter-panel-head{padding:27px 22px 20px}.filter-panel-head h2{font-size:27px;margin-top:12px}.filter-panel-head p{font-size:12px;max-width:270px}.filter-close{right:18px;top:23px;width:35px;height:35px}.filter-panel-body{padding:0 22px 25px}.filter-panel .industry-heading{display:block}.filter-panel .industry-heading>button{max-width:none;text-align:left;margin-top:10px;font-size:12px}.filter-panel .sector-filters{gap:7px}.filter-panel .filter-chip{font-size:12px;padding:10px 12px}.filter-panel .feature-options{grid-template-columns:1fr;gap:8px}.filter-panel select{font-size:16px;width:100%}.filter-panel .style-field{margin-top:25px}.filter-panel-footer{padding:15px 18px;gap:10px;padding-bottom:max(15px,env(safe-area-inset-bottom))}.filter-panel-footer>button{font-size:11px}.filter-panel-footer .filter-apply{font-size:12px;padding:12px 17px;gap:12px}.display-settings{gap:15px}.filter-panel .folio-sort{font-size:12px}.display-settings>div>span{font-size:12px}}
@media(prefers-reduced-motion:reduce){dialog.filter-panel[open]{animation:none}.filter-launch{transition:none}}
