/* Iconka / PKM cohesion, project viewer and UseLayouts-inspired feature carousel */
:root{--content:1100px;--case-accent:var(--highlight);--focused:var(--focus)}
.brand--pkm{letter-spacing:0;gap:9px;font-size:13px}
.brand--pkm img{width:30px;height:30px;object-fit:cover;border-radius:50%}
.brand--pkm strong{letter-spacing:.12em;font-size:13px}
.brand--pkm .brand-suffix{font-weight:400;letter-spacing:0;color:var(--muted);font-size:12px}
.nav-return{margin-left:auto;text-decoration:none!important;color:var(--muted)!important;font-size:12px!important}
.work-progress{display:flex;align-items:flex-start;gap:12px;padding:15px 20px;border:1px solid var(--rule);margin-top:26px;border-radius:8px;background:var(--surface)}
.work-progress strong{font-size:12px;font-weight:650;color:var(--text)}.work-progress p{margin-top:3px;color:var(--secondary);font-size:12px;line-height:1.55;max-width:750px}
.progress-light{display:block;flex:0 0 7px;height:7px;margin-top:7px;background:var(--highlight);border-radius:50%}
.intro{padding-top:68px}
.filter-count{font:10px ui-monospace,monospace;opacity:.65;margin-left:5px}
.brand small{color:var(--secondary)}
.index-preview{overflow:visible;background:transparent;display:block;aspect-ratio:auto}
.index-preview__open{position:relative;display:grid;place-items:center;aspect-ratio:4/5;overflow:hidden;background:var(--media);text-decoration:none}
.index-preview__open img{display:block;height:100%;width:100%;object-fit:contain;padding:7%;transition:transform 280ms cubic-bezier(.23,1,.32,1)}
.index-preview__open:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.index-preview__controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 1px}
.index-preview__controls>span{font-size:12px;font-weight:600;min-width:0;line-height:1.25}
.index-preview__controls>div,.feature-carousel__footer>div{display:flex;align-items:center;gap:8px}
.index-preview__controls button,.feature-carousel__footer button{width:34px;height:34px;border:1px solid var(--rule);border-radius:50%;background:var(--surface);font-size:15px}
.index-preview__controls button:hover,.feature-carousel__footer button:hover{border-color:var(--text)}
.index-preview__controls output,.feature-carousel__footer output{font:11px ui-monospace,monospace;color:var(--muted);white-space:nowrap}
.mobile-project-link{justify-self:center;display:inline-flex;min-height:42px;align-items:center;margin-bottom:14px;font-size:13px}
.detail-head h1{letter-spacing:-.065em}
.detail .meta-strip{display:flex;gap:18px 40px;flex-wrap:wrap;border-bottom:1px solid var(--rule)}
.detail .meta-strip>div{flex:0 1 190px}
.detail .meta-strip dt{color:var(--secondary)}
.detail .meta-strip dd{overflow-wrap:anywhere}
.case-brief{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:40px 0}
.case-prose p:last-child{color:var(--secondary);font-size:clamp(15px,1.45vw,17px);line-height:1.8;margin-top:12px}
.case-hero{margin:5px 0 65px}
.case-hero__open{display:grid;position:relative;width:100%;place-items:center;border:0;padding:clamp(20px,5vw,60px);background:var(--media);min-height:400px;cursor:zoom-in;overflow:hidden}
.case-hero__open img{display:block;max-height:min(74vh,820px);width:100%;object-fit:contain;filter:drop-shadow(0 20px 35px #0003)}
.case-hero__open span{position:absolute;bottom:17px;right:17px;font:11px ui-monospace,monospace;padding:9px 12px;color:var(--text);background:var(--paper)}
.case-hero>p{margin-top:12px}
.case-original-gallery{display:none!important}
.detail-note{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:30px;background:var(--surface);padding:28px;border-top:2px solid var(--case-accent)}
.detail-note blockquote{margin:12px 0 0;font-size:clamp(17px,2vw,25px);letter-spacing:-.03em;line-height:1.45}
.detail-note p:not(.eyebrow){color:var(--secondary);line-height:1.75;margin-top:12px}
.detail-actions .case-start{background:var(--text);color:var(--paper);border-color:var(--text)}
.detail-actions .case-start:hover{background:var(--case-accent);color:#111;border-color:var(--case-accent)}
.feature-carousel{margin:24px 0 80px;scroll-margin-top:5rem}
.feature-carousel__layout{display:grid;grid-template-columns:minmax(210px,.75fr) minmax(0,1.25fr);gap:28px;align-items:start}
.feature-carousel__choices{display:grid;gap:6px;align-content:start}
.feature-carousel__choice{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:64px;width:100%;background:transparent;border:1px solid transparent;border-bottom-color:var(--rule);padding:12px;text-align:left;font-size:14px;line-height:1.35}
.feature-carousel__choice .mono{font-size:10px}
.feature-carousel__choice[aria-pressed=true]{background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--case-accent);color:var(--text)}
.feature-carousel__choice:hover:not([aria-pressed=true]){background:var(--surface)}
.feature-carousel__choice[aria-pressed=false]{color:var(--secondary)}
.feature-carousel__preview{min-width:0}
.feature-carousel__image{position:relative;display:grid;place-items:center;background:var(--media);aspect-ratio:4/4.2;width:100%;border:0;overflow:hidden;padding:22px}
.feature-carousel__image img{display:block;width:100%;height:100%;object-fit:contain;transition:opacity 220ms ease-out,transform 280ms ease-out}
.feature-carousel__image:hover img{transform:scale(1.025)}
.feature-carousel__image .preview-label{color:var(--text)}
.feature-carousel__footer{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0}
.feature-carousel__footer>p{font-size:13px;font-weight:600}
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
.index-preview__open img,.case-hero__open img{view-transition-name:iconka-artwork}
@media(max-width:800px){.feature-carousel__layout{grid-template-columns:1fr}.feature-carousel__choices{display:flex;overflow-x:auto;scrollbar-width:thin;gap:8px;padding-bottom:6px}.feature-carousel__choice{flex:0 0 auto;width:auto;min-height:48px;max-width:220px;border:1px solid var(--rule);border-radius:6px;grid-template-columns:auto 1fr;gap:8px}.feature-carousel__choice>span:last-child{display:none}.case-brief{gap:30px}}
@media(max-width:650px){.brand--pkm .brand-suffix{display:none}.work-progress{padding:12px;margin-top:18px}.case-brief{grid-template-columns:1fr;gap:24px;padding:28px 0}.case-hero{margin-bottom:44px}.case-hero__open{min-height:220px;padding:14px}.feature-carousel__image{aspect-ratio:4/4.5}.detail .meta-strip>div{flex:0 1 calc(50% - 20px)}.nav-return{font-size:11px!important}.detail-note{padding:20px}.feature-carousel{margin-bottom:50px}}
@media(max-width:360px){.brand--pkm img{width:24px;height:24px}.brand--pkm{gap:5px}.nav-return{display:none}}
@media(prefers-reduced-motion:reduce){.index-preview__open img,.feature-carousel__image img{transition:none!important;transform:none!important}}

/* Clear keyboard feedback, photo fallback, and legible narrow-screen actions. */
.feature-carousel__choice:focus-visible,.feature-carousel__image:focus-visible,.case-hero__open:focus-visible,.index-preview__open:focus-visible,.index-preview__controls button:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
:root[data-theme=light] .brand--pkm .brand-suffix,:root[data-theme=light] .filter-count{color:#51504a}
@media(max-width:650px){.feature-carousel__footer>p{font-size:12px;line-height:1.35}.feature-carousel__footer>div{gap:6px}.feature-carousel__choice{font-size:12px}}

/* Gold identity shared with PKM; responsive and keyboard-first refinements. */
.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:16px;align-items:center}
.topbar .back{justify-self:start;min-height:44px;display:inline-flex;align-items:center;color:var(--secondary);font-weight:550}
.topbar .brand{justify-self:center;white-space:nowrap}
.topbar .header-actions{justify-self:end}
.topbar .theme-button,.topbar .contact-top{min-height:44px}
.subnav{gap:28px;min-height:62px}
.subnav a{display:inline-flex;align-items:center;min-height:48px;padding-block:13px;font-weight:500}
.work-progress{padding:10px 14px;margin-top:18px;gap:11px;align-items:center;border-radius:10px}
.work-progress strong{font-size:12px;font-weight:650}
.work-progress p{font-size:12px;margin-top:1px;line-height:1.4}
.progress-light{width:9px;height:9px;flex:0 0 9px;margin-top:0;background:var(--highlight);box-shadow:0 0 0 0 rgb(187 167 131 / .4);animation:iconka-status 2.2s ease-out infinite}
@keyframes iconka-status{0%,100%{opacity:1;box-shadow:0 0 0 0 rgb(187 167 131 / .32)}55%{opacity:.64;box-shadow:0 0 0 6px rgb(187 167 131 / 0)}}
.intro{padding-top:clamp(45px,6vw,80px);padding-bottom:56px}
.intro h1{font-size:clamp(2.8rem,9.5vw,8rem);line-height:1.07;letter-spacing:-.055em;margin:18px 0 24px;text-wrap:balance;overflow-wrap:normal}
.intro h1 span{display:block;white-space:normal;margin-top:.035em}
.intro .lede{line-height:1.65;letter-spacing:-.01em;max-width:660px}
.selected-number,.row-number{display:none!important}
.selected-meta h3{line-height:1.25}
.index-row{grid-template-columns:minmax(0,1fr) auto 24px;gap:12px}
.index-row .row-title{grid-column:1;min-width:0;overflow-wrap:anywhere;line-height:1.22}
.index-row .row-cat{grid-column:2;min-width:0}
.index-row .row-arrow{grid-column:3}
.card-info{align-items:start}
.card-info h3{line-height:1.3;overflow-wrap:anywhere}
.tools{gap:12px}
.filter-count{font-size:10px;margin-left:4px}
.filter-button,.view-button{min-height:44px;white-space:nowrap}
.results-row{min-height:62px}
.search{min-height:44px}
.detail-head h1{line-height:1.07;overflow-wrap:anywhere}
.detail-head .eyebrow{color:var(--accent)}
.detail .meta-strip dt{color:var(--secondary)}
.case-brief{line-height:1.7}
.detail .detail-note{border-top-color:var(--case-accent)}
.feature-carousel__choice .mono{display:none}
.feature-carousel__choice{grid-template-columns:minmax(0,1fr) auto;min-height:52px}
.feature-carousel__choice span:last-child{opacity:.8}
.lightbox .lightbox-bottom button{min-width:44px;min-height:44px}
.lightbox .lightbox-bottom{flex-wrap:wrap}
@media(max-width:900px){.intro h1{font-size:clamp(2.65rem,10vw,6.3rem)}.intro{padding-top:55px}}
@media(max-width:650px){
 .topbar{height:65px;grid-template-columns:minmax(60px,1fr) auto minmax(95px,1fr);column-gap:7px}
 .topbar .back{font-size:12px;white-space:nowrap}
 .topbar .back span{margin-right:5px}
 .topbar .brand{gap:6px}
 .topbar .brand img{width:26px;height:26px}
 .topbar .brand strong{font-size:12px}
 .topbar .brand-suffix{display:none}
 .topbar .header-actions{gap:5px}
 .topbar .theme-button{padding:6px;width:42px;min-width:42px}
 .topbar .contact-top{font-size:11px;padding:6px 9px;min-height:42px}
 .subnav{display:flex;justify-content:space-between;gap:12px;min-height:54px}
 .subnav a{font-size:12px;white-space:nowrap;min-height:46px;padding-block:10px}
 .work-progress{margin-top:14px;padding:10px 12px}
 .work-progress p{font-size:11.5px}
 .intro{padding-block:44px 40px}
 .intro h1{font-size:clamp(2.65rem,11.3vw,4.9rem);line-height:1.1;letter-spacing:-.045em;margin:14px 0 19px}
 .intro h1 span{margin-top:.065em}
 .intro .lede{font-size:16px;line-height:1.65}
 .intro-bottom{gap:14px;margin-top:23px}
 .archive-heading{padding-top:43px}
 .archive-heading h1{font-size:clamp(2.65rem,12vw,5.2rem);line-height:1.08;letter-spacing:-.055em}
 .archive-heading .lede{font-size:15px;line-height:1.65}
 .archive-stats{gap:9px 18px}
 .archive-stats span{font-size:10px}
 .tools{gap:8px;padding:12px 0;align-items:start}
 .tools .search{width:100%;font-size:16px;padding:10px 13px}
 .tools .filter-controls{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scroll-snap-type:x proximity;width:100%;padding:2px 0 7px}
 .tools .filter-button{flex:none;min-height:43px;padding:8px 12px;scroll-snap-align:start}
 .view-controls{width:100%;margin-left:0;display:grid;grid-template-columns:1fr 1fr;gap:6px}
 .view-controls .view-button{min-height:43px;border:1px solid var(--rule);border-radius:8px}
 .view-controls .view-button[data-view="wall"]{display:none}
 .index-row{grid-template-columns:minmax(0,1fr) 46px;gap:8px 12px;min-height:72px;padding:13px 0}
 .index-row .row-title{grid-column:1;grid-row:1;font-size:clamp(21px,6vw,31px)}
 .index-row .row-cat,.index-row .row-arrow{display:none}
 .index-row .preview-toggle{grid-column:2;grid-row:1;width:44px;height:44px}
 .index-row .mobile-preview{grid-column:1/-1}
 .mobile-preview img{max-height:320px}
 .mobile-preview .mobile-project-link{padding:0 14px}
 .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .archive-grid .card-info h3{font-size:14px;line-height:1.3}
 .archive-grid .thumb{aspect-ratio:4/5}
 .detail-head{padding-top:39px}
 .detail-head h1{font-size:clamp(2.7rem,12vw,5.1rem)}
 .case-brief{gap:23px}
 .case-prose p:last-child{font-size:15px;line-height:1.7}
 .feature-carousel__choice{min-height:44px;max-width:210px}
 .detail-actions{gap:8px}
 .detail-actions a,.detail-actions button{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:360px){
 .topbar{grid-template-columns:minmax(45px,1fr) auto minmax(88px,1fr);gap:4px}
 .topbar .contact-top{font-size:0;min-width:42px}
 .topbar .contact-top::before{content:"↗";font-size:17px}
 .topbar .contact-top span{display:none}
 .subnav{gap:8px}
 .subnav a{font-size:11px}
 .intro h1{font-size:clamp(2.3rem,11vw,2.6rem)}
}
@media(prefers-reduced-motion:reduce){.progress-light{animation:none;box-shadow:none}}

/* Short projects focus on the actual work rather than unsupported process notes. */
.case-brief--single{grid-template-columns:minmax(0,1fr);max-width:740px}
.case-brief--single p:last-child{max-width:65ch}

/* Focused portfolio browsing */
:root{--case-accent:var(--accent)}
.case-hero__open:focus-visible,.index-preview__open:focus-visible{outline-color:var(--focus)}
.detail-note{border-top-color:var(--rule)}
.feature-carousel__choice[aria-pressed=true]{border-left-color:var(--accent)}
.work-progress{border-color:var(--rule)}

/* The design collection is the entry point. Keep the work above the controls. */
.archive-heading{padding:clamp(36px,5vw,58px) 0 26px}
.archive-heading h1{font-size:clamp(2.75rem,7vw,5rem);line-height:1.08;letter-spacing:-.055em;margin:10px 0 16px}
.archive-heading .lede{max-width:690px;font-size:clamp(15px,1.5vw,18px);line-height:1.65}
.tools{position:relative;top:auto;padding:16px 0;gap:13px}
.tools .search{flex:1 1 200px;min-width:0}
.filter-controls{display:flex;gap:5px;flex-wrap:wrap}
.filter-button{padding:9px 13px}
.filter-button[aria-pressed=true]{border-color:var(--secondary);color:var(--text);font-weight:650}
.view-controls{display:flex;flex:0 0 auto;margin-left:auto;align-items:center;gap:5px}
.view-button{border:1px solid var(--rule);min-height:43px;padding:8px 15px}
.results-row{min-height:56px;padding-block:18px}
.index-row{grid-template-columns:minmax(0,1fr) auto 24px}
.index-row .row-title{grid-column:1}
.index-preview__open img{transition:transform 260ms cubic-bezier(.23,1,.32,1)}
.kente-line,.archive-stats{display:none}
@media(max-width:650px){
 .archive-heading{padding:29px 0 22px}
 .archive-heading h1{font-size:clamp(2.55rem,11vw,4.6rem);margin:10px 0 12px}
 .archive-heading .lede{font-size:15px}
 .tools{gap:10px;padding:12px 0}
 .tools .search{flex:1 1 100%;width:100%;font-size:16px}
 .tools .filter-controls{gap:6px;width:100%;display:flex;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;padding:2px 0 5px}
 .tools .filter-button{min-height:44px;flex:none}
 .view-controls{width:auto;margin:0 0 0 auto;display:flex;gap:6px}
 .view-controls .view-button{min-width:58px}
 .index-row .row-title{font-size:clamp(21px,6vw,32px)}
 .index-row .preview-toggle{min-width:44px;min-height:44px}
 .results-row{min-height:55px}
}

/* Crawlable initial content matches the interactive archive and provides usable fallback. */
.seo-preloaded{padding:0 0 42px}
.seo-preloaded__hint{font-size:13px;color:var(--secondary);margin:16px 0}
.seo-preloaded__projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.seo-preloaded__projects a{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--rule);border-radius:10px;text-decoration:none;min-width:0}
.seo-preloaded__projects img{height:64px;width:56px;object-fit:contain;flex:0 0 56px;background:var(--media);border-radius:5px}
.seo-preloaded__projects a>span:nth-of-type(1){display:grid;flex:1;min-width:0;gap:3px}
.seo-preloaded__projects strong{font-size:13px;font-weight:650}
.seo-preloaded__projects small{font-size:11px;color:var(--secondary)}
.design-service-intro{border-top:1px solid var(--rule);margin:46px 0 60px;padding:30px 0;display:flex;gap:28px;align-items:flex-start;justify-content:space-between}
.design-service-intro>div{max-width:740px}
.design-service-intro h2{font-size:clamp(24px,3vw,34px);letter-spacing:-.045em;line-height:1.16;margin:8px 0 16px}
.design-service-intro p:not(.eyebrow){line-height:1.75;font-size:14px;color:var(--secondary);margin:0 0 11px}
.design-service-intro .service-contact{display:inline-flex;flex:none;text-align:center;align-items:center;justify-content:center;padding:13px 18px;border:1px solid var(--rule);border-radius:8px;font-size:12px;font-weight:650;color:var(--text);text-decoration:none}
.design-service-intro .service-contact:hover{border-color:var(--accent)}
@media(max-width:700px){.seo-preloaded__projects{grid-template-columns:1fr}.design-service-intro{display:grid;gap:12px;margin:32px 0 48px}.design-service-intro .service-contact{width:max-content;max-width:100%}}

/* Pre-rendered project content is visible to visitors and search crawlers before JavaScript loads. */
.seo-case{padding:30px 0 70px;max-width:950px}
.seo-case nav{font-size:13px;color:var(--secondary);margin-bottom:24px;display:flex;gap:10px}
.seo-case nav a{color:inherit}
.seo-case header h1{font-size:clamp(2.55rem,7vw,5rem);margin:10px 0 18px;line-height:1.1}
.seo-case .lede{max-width:780px;font-size:clamp(16px,1.65vw,19px);line-height:1.6}
.seo-case section{margin:35px 0;max-width:760px}
.seo-case section h2{font-size:clamp(21px,2.4vw,28px);margin-bottom:10px}
.seo-case section p{color:var(--secondary);line-height:1.8}
.seo-case__images{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;margin-top:25px}
.seo-case__images figure{margin:0;min-width:0}
.seo-case__images img{display:block;object-fit:contain;width:100%;height:auto;max-height:740px;aspect-ratio:4/5;background:var(--media);border-radius:8px;padding:8%}
.seo-case__images figcaption{font:12px/1.5 ui-monospace,monospace;color:var(--secondary);margin-top:9px}
.seo-case__links{display:flex;gap:20px;flex-wrap:wrap;margin-top:32px;font-size:13px}
.seo-case__links a{color:var(--text)}
