.portfolio-nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px var(--gutter);background:var(--color-bg);border-bottom:1px solid var(--color-line)}
.portfolio-brand{font-family:var(--font-display);font-size:1.75rem;letter-spacing:.18em;color:var(--color-ink);text-decoration:none}
.portfolio-back{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:var(--color-ink);text-decoration:none}
.portfolio-back:hover,.portfolio-tabs a:hover{color:var(--color-bronze)}
.portfolio-intro,.portfolio-project{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.portfolio-intro{padding-top:clamp(70px,10vw,140px);padding-bottom:clamp(65px,8vw,110px)}
.portfolio-eyebrow{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;color:var(--color-bronze);text-transform:uppercase}
.portfolio-intro h1,.portfolio-heading h2{font-family:var(--font-display);font-weight:400;line-height:1.04;letter-spacing:-.02em}
.portfolio-intro h1{font-size:clamp(3.8rem,9vw,8rem);margin:20px 0 16px}
.portfolio-intro>p:not(.portfolio-eyebrow),.portfolio-heading>p:not(.portfolio-eyebrow){color:var(--color-ink-soft);font-size:1rem;max-width:650px}
.portfolio-intro .portfolio-note{margin-top:12px;color:var(--color-ink-soft);font-size:.8rem;max-width:650px}
.portfolio-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:42px}
.portfolio-tabs a{border:1px solid var(--color-line);padding:13px 20px;color:var(--color-ink);text-decoration:none;font-size:.82rem;transition:color .2s,border-color .2s}
.portfolio-tabs a:hover{border-color:var(--color-bronze)}
.portfolio-project{padding-top:80px;padding-bottom:110px;border-top:1px solid var(--color-line);scroll-margin-top:72px}
.portfolio-heading{margin-bottom:50px}
.portfolio-heading h2{font-size:clamp(2.7rem,6vw,5.7rem);margin:15px 0 12px}
.room-group{margin:0 0 55px}
.room-group h3{font-family:var(--font-display);font-weight:400;font-size:clamp(1.6rem,3vw,2.3rem);margin:0 0 17px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gallery-item{display:block;position:relative;overflow:hidden;background:var(--color-bg-alt);aspect-ratio:4/3;color:#fff}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease);}
.gallery-item:hover img{transform:scale(1.04)}
.gallery-item-label{position:absolute;right:12px;bottom:12px;padding:6px 8px;background:rgba(0,0,0,.48);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em}
.lightbox[hidden]{display:none!important}
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(13,13,16,.97);display:grid;grid-template-columns:60px minmax(0,1fr) 60px;align-items:center;color:#fff}
.lightbox-figure{margin:0;min-width:0;text-align:center}
.lightbox-image{display:block;max-width:calc(100vw - 140px);max-height:calc(100dvh - 100px);width:auto;height:auto;object-fit:contain;margin:0 auto}
.lightbox figcaption{display:flex;justify-content:space-between;gap:25px;padding:14px 5px;font-size:.78rem;color:rgba(255,255,255,.8)}
.lightbox button{border:0;background:none;color:white;cursor:pointer;font-family:var(--font-body)}
.lightbox-prev,.lightbox-next{font-size:3rem;height:100%;align-self:stretch}
.lightbox-close{position:absolute;right:16px;top:8px;z-index:1;font-size:2.2rem;width:48px;height:48px}
.lightbox button:hover{color:var(--color-bronze-soft)}
@media(max-width:850px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lightbox{grid-template-columns:40px minmax(0,1fr) 40px}.lightbox-image{max-width:calc(100vw - 88px)}}
@media(max-width:520px){.portfolio-nav{padding-top:14px;padding-bottom:14px}.portfolio-brand{font-size:1.35rem}.portfolio-back{font-size:.6rem}.gallery-grid{gap:5px}.gallery-item{aspect-ratio:4/5}.gallery-item-label{font-size:.52rem}.lightbox{grid-template-columns:36px minmax(0,1fr) 36px}.lightbox-prev,.lightbox-next{font-size:2rem}.lightbox-image{max-width:calc(100vw - 76px);max-height:calc(100dvh - 110px)}.lightbox figcaption{font-size:.67rem}}

.portfolio-actions{display:flex;align-items:center;gap:clamp(12px,3vw,30px)}
.portfolio-theme{border-color:var(--color-line)}
.portfolio-theme .theme-btn{color:var(--color-ink-soft);font-size:1.1rem}
.portfolio-theme .theme-btn:hover{color:var(--color-ink)}
.portfolio-theme .theme-btn.is-active{background:var(--color-ink);color:var(--color-bg)}
.portfolio-theme .theme-btn.is-active:hover{color:var(--color-bg)}
html.theme-ready .portfolio-nav,html.theme-ready .portfolio-tabs a{transition:background-color .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease)}
@media(max-width:520px){.portfolio-actions{gap:10px}.portfolio-theme .theme-btn{width:23px;height:25px;font-size:.92rem}.portfolio-theme{padding:2px}.portfolio-back{max-width:74px;line-height:1.2;text-align:right}}
