/* Homepage only. Shared design tokens live in styles.css. */
.portfolio-home { --home-width: 1200px; }
.portfolio-home .home-container { width: min(var(--home-width), calc(100% - 112px)); margin-inline: auto; }
.portfolio-home .home-header { position: sticky; top: 0; z-index: 5; background: var(--paper); min-height: 76px; padding: 18px 40px; display: flex; align-items: center; gap: 32px; border-bottom: 1px solid var(--line); }
.portfolio-home .home-header-note { margin-left: auto; color: var(--muted); font: 11px var(--mono-font); letter-spacing: .08em; }
.portfolio-home .home-header nav { display: flex; gap: 30px; }
.portfolio-home .home-header nav a { padding-block: 8px; font-size: 14px; }
.portfolio-home .home-label { color: var(--accent); font: 11px/1.6 var(--mono-font); letter-spacing: .065em; text-transform: uppercase; }
.portfolio-home .home-about { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(0,1fr); align-items: center; gap: clamp(48px,8vw,120px); padding-block: 76px 70px; }
.portfolio-home .home-bio > h1:not(.home-intro) { font-size: clamp(38px,4.2vw,58px); letter-spacing: -.045em; margin: 27px 0 16px; }
.portfolio-home .home-intro { font: clamp(38px,4.2vw,58px)/1.28 var(--heading-font); letter-spacing: -.025em; }
.portfolio-home .home-intro em { color: var(--accent); font-weight: normal; }
.portfolio-home .home-description { font-size: 16px; line-height: 1.8; color: var(--muted); max-width: 550px; margin-top: 24px; }
.portfolio-home .home-social { display: flex; gap: 25px; flex-wrap: wrap; align-items: center; margin-top: 26px; font-size: 14px; }
.portfolio-home .home-social a { border-bottom: 1px solid var(--line); padding: 6px 0; }
.portfolio-home .home-social-placeholder { color: var(--muted); }
.portfolio-home .home-social-placeholder small { margin-left: 8px; font: 10px var(--mono-font); text-transform: uppercase; }
.portfolio-home .home-work-link { display: inline-flex; align-items: center; gap: 36px; margin-top: 35px; font-size: 13px; color: var(--accent); }
.portfolio-home .home-portrait { max-width: 375px; justify-self: end; width:100%; }
.portfolio-home .home-portrait img { border: 1px solid var(--line); }
.portfolio-home .home-portrait figcaption { justify-content: space-between; font-size: 10px; }
.portfolio-home .home-portrait figcaption span { color: var(--muted); flex-shrink: 1; }
.portfolio-home .home-ribbon { display:flex; width:min(var(--home-width), calc(100% - 112px)); margin:36px auto; border:0; background:transparent; height:88px; }
.portfolio-home .home-ribbon-window { overflow:hidden; flex:1; min-width:0; display:flex; align-items:center; }
.portfolio-home .home-ribbon-track { display:flex; width:max-content; }
.portfolio-home .home-ribbon-group { display:flex; align-items:center; flex-shrink:0; gap:64px; padding-right:64px; white-space:nowrap; }
.portfolio-home .home-brand { display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.portfolio-home .home-brand img { display:block; width:calc(var(--logo-width) * .68); height:calc(var(--logo-height) * .68); object-fit:contain; border:0; opacity:.578; }
.portfolio-home .home-ribbon:focus-visible { outline:1px solid var(--accent); outline-offset:4px; }
.portfolio-home .home-ribbon-control { border:0; background:transparent; padding:0 24px; color:var(--muted); font:12px var(--mono-font); cursor:pointer; }
.portfolio-home .home-ribbon-control:disabled { cursor:default; }
.portfolio-home .home-work-header { display:flex; justify-content:space-between; gap:16px; padding:40px 0 0; }
.portfolio-home .home-work-header .home-label:last-child { color:var(--muted); }
.portfolio-home .home-category { margin-top:55px; scroll-margin-top:100px; }
.portfolio-home .home-category + .home-category { margin-top:90px; }
.portfolio-home .home-category-intro { display:grid; grid-template-columns:1fr 1fr; column-gap:70px; margin-bottom:30px; }
.portfolio-home .home-category-intro .home-label { grid-column:1/-1; margin-bottom:12px; }
.portfolio-home .home-category-intro h2 { font-size:clamp(27px,3vw,39px); align-self:start; }
.portfolio-home .home-category-intro > p:last-child { font-size:15px; color:var(--muted); max-width:470px; margin:0; }
.portfolio-home .home-project-list { border-top:1px solid var(--line); }
.portfolio-home .home-project { display:grid; grid-template-columns:40px 24px minmax(0,1.1fr) 42px minmax(0,1fr) 38px; border-bottom:1px solid var(--line); overflow-anchor:none; }
.portfolio-home .home-project h3 { display:grid; grid-column:1/-1; grid-template-columns:subgrid; font-family:var(--body-font); }
.portfolio-home .home-project-toggle { width:100%; grid-column:1/-1; display:grid; grid-template-columns:subgrid; align-items:center; text-align:left; padding:26px 0; border:0; background:none; color:var(--ink); font:inherit; cursor:pointer; }
.portfolio-home .home-project-toggle:hover { background:var(--tint); }
.portfolio-home .home-project-toggle[aria-expanded=true] { background:var(--tint); }
.portfolio-home .home-project-number { grid-column:1; padding-left:12px; font:11px var(--mono-font); color:var(--muted); }
.portfolio-home .home-project-heading { display:grid; gap:6px; }
.portfolio-home .home-project-toggle > .home-project-heading { grid-column:3; }
.portfolio-home .home-project-name { font-size:21px; letter-spacing:-.025em; }
.portfolio-home .home-project-line { font-size:13px; line-height:1.55; color:var(--muted); font-weight:normal; }
.portfolio-home .home-tags { display:flex; flex-wrap:wrap; gap:6px; }
.portfolio-home .home-project-toggle > .home-tags { grid-column:5; grid-row:1; }
.portfolio-home .home-project-toggle > .home-tags { padding-right:194px; }
.portfolio-home .home-tag { display:inline-block; font:10px/1.5 var(--mono-font); border:1px solid var(--line); border-radius:3px; padding:4px 7px; color:var(--muted); font-weight:normal; }
.portfolio-home .home-project-meta { position:absolute; top:50%; right:64px; width:130px; transform:translateY(-50%); white-space:nowrap; font:11px/1.6 var(--mono-font); color:var(--muted); }
.portfolio-home .home-plus { position:absolute; top:50%; right:12px; width:26px; height:26px; transform:translateY(-50%); color:var(--accent); }
.portfolio-home .home-project-toggle { position:relative; }
.portfolio-home .home-plus::before,.portfolio-home .home-plus::after { content:''; position:absolute; background:currentColor; top:12px; left:6px; width:14px; height:1px; }
.portfolio-home .home-plus::after { transform:rotate(90deg); }
.portfolio-home [aria-expanded=true] .home-plus::after { transform:rotate(0); }
.portfolio-home .home-project-panel { display:grid; grid-column:1/-1; grid-template-columns:subgrid; overflow:hidden; background:var(--tint); }
.portfolio-home .home-project-panel[hidden] { display:none; }
.portfolio-home .home-panel-inner { display:grid; grid-column:1/-1; grid-template-columns:subgrid; padding-block:12px 40px; }
.portfolio-home .home-project-image { grid-column:3; align-self:center; }
.portfolio-home .home-project-image img { max-height:390px; object-fit:contain; }
.portfolio-home .home-project-copy { grid-column:5; align-self:center; }
.portfolio-home .home-project-copy h4 { font:28px/1.2 var(--heading-font); letter-spacing:-.025em; margin:12px 0 18px; }
.portfolio-home .home-project-copy > p:not(.home-label) { font-size:15px; color:var(--muted); line-height:1.75; }
.portfolio-home .home-methods { margin-top:20px; }
.portfolio-home .home-project-facts { display:grid; grid-template-columns:1fr 1fr; gap:15px; border-top:1px solid #CBD8D7; margin-top:24px; padding-top:16px; }
.portfolio-home .home-project-facts dt { font-size:10px; margin-bottom:4px; }
.portfolio-home .home-project-facts dd { font-size:13px; }
.portfolio-home .home-visit { display:inline-flex; gap:26px; align-items:center; color:var(--accent); border-bottom:1px solid var(--accent); padding:8px 0; margin-top:22px; font-size:14px; }
.portfolio-home .home-coming { display:inline-block; margin-top:24px; font:12px var(--mono-font); color:var(--muted); }
.portfolio-home .home-footer { margin-top:100px; /* border-top:1px solid var(--line); */ padding-top:44px; }
.portfolio-home .home-contact-row { display:flex; align-items:center; justify-content:space-between; gap:32px; margin-top:18px; }
.portfolio-home .home-contact-row h2 { font-size:clamp(30px,3vw,40px); }
.portfolio-home .home-contact-row > a { font-size:16px; border-bottom:1px solid var(--line); padding-block:10px; overflow-wrap:anywhere; }
.portfolio-home .home-footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:65px; padding-bottom:84.5px; color:var(--muted); font:11px/1.7 var(--mono-font); }
.portfolio-home .home-sr { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.portfolio-home button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.portfolio-home :is(#about,#work,#contact) { scroll-margin-top:100px; }
@media(max-width:1000px) {
.portfolio-home .home-container { width:calc(100% - 64px); }
.portfolio-home .home-ribbon { width:calc(100% - 64px); }
.portfolio-home .home-header { padding-inline:28px; gap:24px; }
.portfolio-home .home-header-note { display:none; }
.portfolio-home .home-header nav { margin-left:auto; }
.portfolio-home .home-about { gap:35px; padding-block:54px; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }
.portfolio-home .home-project-meta { display:none; }
.portfolio-home .home-project-toggle > .home-tags { padding-right:38px; }
.portfolio-home .home-panel-inner { padding-block:16px 32px; }
.portfolio-home .home-category-intro { column-gap:30px; }
}
@media(max-width:600px) {
.portfolio-home .home-container { width:calc(100% - 40px); }
.portfolio-home .home-ribbon { width:calc(100% - 40px); margin-block:24px; }
.portfolio-home .home-header { padding:12px 20px; flex-wrap:wrap; gap:8px; min-height:70px; }
.portfolio-home .home-header .wordmark { font-size:16px; }
.portfolio-home .home-header nav { gap:14px; }
.portfolio-home .home-header nav a { font-size:12px; }
.portfolio-home .home-header nav a:last-child span { display:none; }
.portfolio-home .home-about { grid-template-columns:1fr; padding:42px 0; gap:32px; }
.portfolio-home .home-bio > h1:not(.home-intro) { font-size:40px; }
.portfolio-home .home-intro { font-size:40px; }
.portfolio-home .home-portrait { max-width:none; }
.portfolio-home .home-portrait img { height:270px; object-fit:contain; background:var(--tint); }
.portfolio-home .home-work-link { margin-top:25px; }
.portfolio-home .home-ribbon { height:76px; margin-block:24px; }
.portfolio-home .home-ribbon-group { gap:40px; padding-right:40px; }
.portfolio-home .home-brand img { width:calc(var(--logo-width) * .578); height:calc(var(--logo-height) * .578); }
.portfolio-home .home-ribbon-control { padding:0 13px; }
.portfolio-home .home-ribbon-control span { display:none; }
.portfolio-home .home-work-header { padding-top:28px; }
.portfolio-home .home-work-header .home-label:last-child { display:none; }
.portfolio-home .home-category { margin-top:32px; }
.portfolio-home .home-category + .home-category { margin-top:56px; }
.portfolio-home .home-category-intro { grid-template-columns:1fr; gap:12px; margin-bottom:22px; }
.portfolio-home .home-category-intro .home-label { margin:0; }
.portfolio-home .home-category-intro h2 { font-size:30px; }
.portfolio-home .home-project { display:block; }
.portfolio-home .home-project h3 { display:block; }
.portfolio-home .home-project-toggle { display:grid; grid-template-columns:20px minmax(0,1fr) 26px; padding:22px 4px; gap:10px; }
.portfolio-home .home-project-number { grid-column:auto; padding-left:0; }
.portfolio-home .home-project-toggle > .home-project-heading { grid-column:auto; }
.portfolio-home .home-project-toggle > .home-tags { grid-column:2; grid-row:2; padding-right:0; }
.portfolio-home .home-plus { position:relative; top:auto; right:auto; grid-column:3; grid-row:1; justify-self:end; transform:none; }
.portfolio-home .home-project-meta { position:static; top:auto; right:auto; display:block; grid-column:2; grid-row:3; transform:none; }
.portfolio-home .home-project-name { font-size:21px; }
.portfolio-home .home-project-panel { display:block; }
.portfolio-home .home-panel-inner { grid-template-columns:1fr; padding:12px 18px 28px; gap:24px; }
.portfolio-home .home-project-image, .portfolio-home .home-project-copy { grid-column:auto; }
.portfolio-home .home-project-image img { max-height:300px; }
.portfolio-home .home-project-copy h4 { font-size:26px; }
.portfolio-home .home-footer { margin-top:64px; padding-top:30px; }
.portfolio-home .home-contact-row { display:block; }
.portfolio-home .home-contact-row > a { display:inline-block; font-size:14px; margin-top:20px; }
.portfolio-home .home-footer-bottom { margin-top:40px; padding-bottom:52px; flex-direction:column; gap:12px; }
}
@media(prefers-reduced-motion:reduce) {
.portfolio-home .home-ribbon { height:auto; min-height:60px; }
.portfolio-home .home-ribbon-track { width:100%; }
.portfolio-home .home-ribbon-group { min-width:0; width:100%; justify-content:center; flex-wrap:wrap; white-space:normal; gap:16px; padding:18px; font-size:18px; }
.portfolio-home .home-ribbon-group[aria-hidden=true] { display:none; }
}
