/* Portfolio is a separate gallery of actual work, never a copy of demo products. */
.portfolio{border-top:1px solid var(--line);background:#f1f1ec}
.portfolio-intro{font-size:13px;line-height:1.85;color:var(--muted);max-width:730px;margin-top:25px}
.portfolio-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:35px 0 24px;padding-top:22px;border-top:1px solid #ccd1cf}
#portfolio-count{font-size:11px;color:var(--muted)}
.portfolio-filters{display:flex;flex-wrap:wrap;gap:5px}
.portfolio-filters button{background:transparent;border:1px solid transparent;border-radius:24px;padding:10px 17px;min-height:44px;font-size:12px}
.portfolio-filters button[aria-pressed=true]{background:var(--ink);color:white}
.portfolio-filters button:hover{border-color:var(--ink)}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 23px}
.portfolio-open{width:100%;display:block;padding:0;text-align:left;background:transparent}
.portfolio-visual{aspect-ratio:4 / 3;background:#e7e8e2;overflow:hidden}
.portfolio-visual img{width:100%;height:100%;object-fit:contain;transition:transform .3s}
.portfolio-open:hover .portfolio-visual img{transform:scale(1.025)}
.portfolio-caption{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-top:17px}
.portfolio-caption h3{font-size:25px;overflow-wrap:anywhere;line-height:1.2}
.portfolio-caption>span{color:var(--blue);font-size:23px;flex:none}
.portfolio-category{font-size:11px;margin-top:7px;color:var(--muted)}
.portfolio-empty{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:40px 0 12px;border-top:1px solid #ccd1cf}
.portfolio-empty h3{font-size:clamp(29px,3vw,44px);line-height:1.12}
.portfolio-empty>div>p{font-size:14px;line-height:1.9;color:var(--muted);max-width:435px}
.portfolio-empty .text-link{margin-top:22px}
#portfolio-error{font-size:13px;color:#912b20;padding:20px 0}
.portfolio-detail{display:grid;grid-template-columns:1.15fr 1fr}
.portfolio-photo-area{background:#e7e8e2;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:26px 20px 18px}
#portfolio-photo{width:100%;height:420px;object-fit:contain}
.photo-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:18px}
.photo-controls button{width:44px;height:44px;background:var(--paper);border:1px solid #929fa9;border-radius:50%;font-size:23px}
.photo-controls button:disabled{opacity:.35}
.photo-controls p{font-size:11px;min-width:70px;text-align:center}
.portfolio-project-copy{padding:62px 35px 35px;min-width:0}
.portfolio-project-copy .eyebrow{color:var(--blue)}
.portfolio-project-copy h2{font-size:40px;line-height:1.08;margin:20px 0;overflow-wrap:anywhere}
#portfolio-project-description{font-size:14px;color:var(--muted);line-height:1.85;white-space:pre-line;overflow-wrap:anywhere}
.portfolio-project-copy .button{margin-top:28px;width:100%;gap:20px}
.portfolio-note{font-size:10px;color:var(--muted);line-height:1.75;margin-top:15px}
@media(max-width:1100px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.header nav{gap:20px}}
@media(max-width:800px){.portfolio-tools{align-items:start;flex-direction:column}.portfolio-empty{gap:30px}.portfolio-detail{grid-template-columns:1fr}.portfolio-photo-area{padding-top:55px}#portfolio-photo{height:320px}.portfolio-project-copy{padding:30px}.portfolio-project-copy h2{font-size:35px}}
@media(max-width:560px){.portfolio-intro{font-size:12px}.portfolio-tools{margin-top:26px}.portfolio-empty{grid-template-columns:1fr;gap:22px;padding-top:28px}.portfolio-empty h3{font-size:34px}.portfolio-empty>div>p{font-size:13px}.portfolio-grid{grid-template-columns:1fr;gap:28px}.portfolio-caption h3{font-size:26px}.portfolio-filters{gap:3px}.portfolio-filters button{font-size:11px;padding:10px 12px}.portfolio-project-copy{padding:26px 23px}.portfolio-project-copy h2{font-size:34px}#portfolio-photo{height:260px}}

/* Shared columns keep channel descriptions aligned regardless of title length. */
.channel-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(0,1.25fr) minmax(125px,.4fr);column-gap:35px}
.channel-description{max-width:none;min-width:0}
.channel-row>.channel-status,.channel-row>a{justify-self:end;min-width:0;text-align:right}
@media(max-width:1100px){.channel-row{column-gap:20px}}
@media(max-width:560px){.channel-row{grid-template-columns:1fr auto;gap:6px 15px}.channel-description{grid-row:2;grid-column:1 / -1}.channel-row>.channel-status,.channel-row>a{grid-column:2;grid-row:1}}
