:root{
  --portfolio-ink:#171a17;
  --portfolio-brown:#21180f;
  --portfolio-cream:#f1ece2;
  --portfolio-cream-deep:#e8dfd1;
  --portfolio-gold:#9d7846;
  --portfolio-gold-light:#dfc18e;
  --portfolio-gutter:clamp(22px,8vw,132px);
  --rail-card-height:clamp(300px,31vw,430px);
}
.tour-portfolio-page{overflow-x:hidden;background:var(--portfolio-ink)}
.tour-portfolio-page .site-header{position:absolute;background:linear-gradient(180deg,rgba(9,12,10,.9),rgba(9,12,10,0))}
.tour-portfolio-page .site-header.scrolled{position:fixed;background:rgba(18,21,18,.96)}
.tour-portfolio-page .site-nav a.active{color:#dbc49e}
.tour-portfolio-page .site-nav a.active::after{width:100%}
.portfolio-hero{position:relative;height:clamp(340px,34vw,430px);min-height:340px;overflow:hidden;color:#fff;background:var(--portfolio-brown)}
.portfolio-hero-image,.portfolio-hero-shade{position:absolute;inset:0;width:100%;height:100%}
.portfolio-hero-image{object-fit:cover;object-position:center 54%;animation:portfolio-hero-enter 1.2s cubic-bezier(.22,.7,.22,1) both}
.portfolio-hero-shade{background:linear-gradient(90deg,rgba(18,12,7,.88),rgba(18,12,7,.48) 49%,rgba(18,12,7,.12)),linear-gradient(0deg,rgba(8,10,8,.34),transparent 54%)}
.portfolio-hero-content{position:absolute;z-index:1;left:8vw;right:8vw;bottom:clamp(44px,6vw,72px)}
.portfolio-hero-content>.eyebrow{display:block;margin-bottom:16px;color:#e1c596;font-size:.64rem;letter-spacing:.2em}
.portfolio-hero h1{max-width:1120px;margin:0;font-size:clamp(2.45rem,4.2vw,4.35rem);font-weight:600;line-height:1.02;letter-spacing:-.055em;white-space:nowrap}
.portfolio-hero h1 em{color:#e4c48e;font-weight:500}
.portfolio-hero-meta{display:flex;gap:26px;margin-top:20px;color:#cdd2cd;font-size:.57rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.portfolio-hero-meta span+span{padding-left:26px;border-left:1px solid #ffffff50}
.portfolio-hero-meta strong{margin-right:6px;color:#e2c590;font-size:.74rem}
.portfolio-archive{color:#24231f;background:var(--portfolio-cream)}
.tour-portfolio-page .section{padding-top:clamp(48px,5vw,72px);padding-bottom:clamp(42px,4.5vw,66px)}
.portfolio-archive-intro{background:var(--portfolio-cream)}
.portfolio-archive .section-top .eyebrow{color:#89693e}
.portfolio-archive .section-top .rule{background:#afa38f73}
.portfolio-archive .section-tail{color:#6b655b}
.portfolio-intro{display:flex;align-items:end;justify-content:space-between;gap:48px;margin:clamp(28px,3.5vw,44px) 0 clamp(30px,3.8vw,50px)}
.portfolio-intro h2{margin:0;font-size:clamp(2.35rem,4.1vw,4.35rem);font-weight:600;line-height:1;letter-spacing:-.058em;white-space:nowrap}
.portfolio-intro h2 em{color:var(--portfolio-gold);font-weight:500}
.portfolio-intro p{max-width:500px;margin:0 0 4px;color:#68645c;font-size:.75rem;line-height:1.75}
.portfolio-location-index{display:flex;gap:8px;width:100%;padding:0 0 5px;overflow-x:auto;scrollbar-width:none}
.portfolio-location-index::-webkit-scrollbar{display:none}
.portfolio-location-index a{flex:none;padding:10px 14px;border:1px solid #9b8b744f;color:#4f4b44;background:#f7f2e9;font-size:.57rem;font-weight:700;letter-spacing:.09em;text-decoration:none;text-transform:uppercase;transition:color .25s ease,border-color .25s ease,background .25s ease}
.portfolio-location-index a:hover,.portfolio-location-index a:focus-visible{color:#fff;border-color:#8c693b;background:#8c693b;outline:0}
.portfolio-location{position:relative;padding:clamp(48px,5.4vw,78px) 0 clamp(52px,6vw,88px);overflow:hidden;border-top:1px solid rgba(116,91,56,.2);background:var(--portfolio-cream)}
.portfolio-location:nth-child(even){background:var(--portfolio-cream-deep)}
.portfolio-location-header{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);gap:clamp(34px,6vw,100px);align-items:end;margin:0 var(--portfolio-gutter) clamp(28px,3vw,42px)}
.portfolio-location-title-block{min-width:0}
.portfolio-location-kicker{display:flex;align-items:center;gap:12px;margin-bottom:13px;color:#89693e;font-size:.58rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.portfolio-location-kicker::before{content:"";width:28px;height:1px;background:#a4865a}
.portfolio-location h3{max-width:920px;margin:0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,3.05vw,3.45rem);font-weight:400;line-height:1.08;letter-spacing:-.04em;text-wrap:balance}
.portfolio-location h3 em{color:var(--portfolio-gold);font-weight:400}
.portfolio-location-meta{display:flex;flex-direction:column;gap:20px;padding-bottom:3px}
.portfolio-location-description{max-width:590px;margin:0;color:#5f5b53;font-size:.7rem;line-height:1.78}
.portfolio-location-controls{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:17px;border-top:1px solid rgba(137,112,77,.28)}
.portfolio-location-summary{margin:0;color:#645f56;font-size:.7rem;line-height:1.7}
.portfolio-location-summary strong{color:#2d2b27;font-weight:600}
.portfolio-rail-actions{display:flex;gap:8px}
.portfolio-rail-arrow{display:grid;place-items:center;width:43px;height:43px;padding:0;border:1px solid rgba(94,74,47,.42);border-radius:50%;color:#453b2f;background:transparent;cursor:pointer;transition:color .25s ease,border-color .25s ease,background .25s ease,transform .25s ease}
.portfolio-rail-arrow:hover,.portfolio-rail-arrow:focus-visible{color:#fff;border-color:#7d5d35;background:#7d5d35;outline:0;transform:translateY(-2px)}
.portfolio-rail-arrow:disabled{opacity:.32;cursor:default;transform:none}
.portfolio-rail-shell{position:relative}
.portfolio-rail-viewport{overflow-x:auto;overscroll-behavior-inline:contain;scroll-behavior:smooth;scroll-snap-type:x proximity;scrollbar-width:none;cursor:grab}
.portfolio-rail-viewport::-webkit-scrollbar{display:none}
.portfolio-rail-viewport.is-dragging{cursor:grabbing;scroll-snap-type:none}
.portfolio-rail-track{display:flex;align-items:stretch;gap:clamp(12px,1.4vw,22px);width:max-content;height:var(--rail-card-height);padding:8px var(--portfolio-gutter) 26px}
.portfolio-photo-card{position:relative;flex:0 0 auto;height:100%;aspect-ratio:var(--photo-ratio);scroll-snap-align:start}
.portfolio-photo-card button{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden;border:1px solid rgba(86,68,44,.18);border-radius:clamp(12px,1.2vw,19px);color:#fff;background:transparent;box-shadow:0 17px 42px rgba(62,48,30,.16);cursor:zoom-in;isolation:isolate;transition:transform .38s cubic-bezier(.2,.7,.2,1),box-shadow .38s ease}
.portfolio-photo-card img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .4s ease}
.portfolio-photo-card button::after{content:"";position:absolute;z-index:1;inset:auto 0 0;height:30%;background:linear-gradient(transparent,rgba(7,9,7,.75));opacity:.62;pointer-events:none;transition:opacity .3s ease}
.portfolio-card-meta{position:absolute;z-index:2;left:clamp(13px,1.4vw,20px);right:clamp(13px,1.4vw,20px);bottom:clamp(12px,1.3vw,18px);display:flex;align-items:end;justify-content:space-between;gap:14px;pointer-events:none;transition:transform .35s ease}
.portfolio-card-meta strong{font-size:.56rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.portfolio-card-meta span{display:grid;place-items:center;width:29px;height:29px;border:1px solid #ffffff99;border-radius:50%;font-size:.51rem}
.portfolio-photo-card button:hover,.portfolio-photo-card button:focus-visible{transform:translateY(-5px);box-shadow:0 26px 58px rgba(55,41,24,.26)}
.portfolio-photo-card button:hover img,.portfolio-photo-card button:focus-visible img{transform:scale(1.018);filter:saturate(1.06) contrast(1.015)}
.portfolio-photo-card button:hover::after,.portfolio-photo-card button:focus-visible::after{opacity:.9}
.portfolio-photo-card button:hover .portfolio-card-meta,.portfolio-photo-card button:focus-visible .portfolio-card-meta{transform:translateY(-3px)}
.portfolio-photo-card button:focus-visible{outline:3px solid #9d7846;outline-offset:4px}
.portfolio-rail-progress{height:1px;margin:0 var(--portfolio-gutter);overflow:hidden;background:rgba(92,72,45,.23)}
.portfolio-rail-progress span{display:block;width:var(--progress,0%);height:100%;background:#8d6a3d;transition:width .2s ease}
.portfolio-footer .footer-inner{padding-top:clamp(52px,6vw,78px)}
.footer-credit{color:#c9a96f!important}
.footer-credit:hover{color:#efd39f!important}
.portfolio-lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;color:#f4f0e9;background:rgba(8,11,9,.95);opacity:0;transition:opacity .25s ease,overlay .25s allow-discrete,display .25s allow-discrete}
.portfolio-lightbox[open]{opacity:1}
.portfolio-lightbox::backdrop{background:rgba(5,7,6,.95);backdrop-filter:blur(10px)}
.portfolio-lightbox-shell{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;height:100%;padding:15px clamp(14px,3vw,46px) 18px}
.portfolio-lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:60px;border-bottom:1px solid #ffffff26}
.portfolio-lightbox-top p{display:flex;gap:18px;margin:0;font-size:.63rem;letter-spacing:.13em;text-transform:uppercase}
.portfolio-lightbox-top strong{color:#dfc18e}.portfolio-lightbox-top span{color:#aeb4ae}
.portfolio-lightbox-close,.portfolio-lightbox-nav{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffffff52;color:#fff;background:#111916b8;cursor:pointer;transition:color .25s ease,border-color .25s ease,background .25s ease}
.portfolio-lightbox-close:hover,.portfolio-lightbox-nav:hover{color:#171a17;border-color:#dfc18e;background:#dfc18e}
.portfolio-lightbox-stage{display:grid;grid-template-columns:58px minmax(0,1fr) 58px;gap:clamp(9px,2vw,28px);align-items:center;min-height:0;padding-top:16px;touch-action:pan-y}
.portfolio-lightbox-stage figure{display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;min-width:0;height:100%;margin:0}
.portfolio-lightbox-stage img{max-width:100%;max-height:calc(100dvh - 125px);object-fit:contain;box-shadow:0 25px 90px #000b}
.portfolio-lightbox-stage figcaption{min-height:20px;padding-top:8px;color:#aeb4ae;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}
.portfolio-lightbox-open{overflow:hidden}
@keyframes portfolio-hero-enter{from{opacity:.48;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(max-width:900px){
  :root{--portfolio-gutter:clamp(22px,6vw,50px);--rail-card-height:clamp(300px,47vw,390px)}
  .portfolio-hero{height:390px;min-height:390px}
  .portfolio-hero h1{font-size:clamp(2.25rem,6.5vw,3.4rem)}
  .portfolio-intro{align-items:start;flex-direction:column;gap:15px}
  .portfolio-location-header{grid-template-columns:1fr;gap:18px}
  .portfolio-location-description{max-width:680px}
}
@media(max-width:620px){
  :root{--rail-card-height:clamp(286px,82vw,340px)}
  .tour-portfolio-page .section{padding-top:40px;padding-bottom:36px}
  .portfolio-hero{height:350px;min-height:350px}
  .portfolio-hero-image{object-position:58% center}
  .portfolio-hero-content{left:22px;right:22px;bottom:39px}
  .portfolio-hero-content>.eyebrow{max-width:290px;margin-bottom:13px;font-size:.54rem;line-height:1.5}
  .portfolio-hero h1{font-size:clamp(2.05rem,10.3vw,3rem);line-height:1.04;white-space:normal}
  .portfolio-hero-meta{gap:14px;margin-top:16px;font-size:.48rem}
  .portfolio-hero-meta span+span{padding-left:14px}
  .portfolio-intro{margin:25px 0 27px}
  .portfolio-intro h2{font-size:clamp(2rem,9.5vw,2.7rem);white-space:normal}
  .portfolio-intro p{font-size:.69rem}
  .portfolio-location-index{margin-right:calc(var(--portfolio-gutter) * -1);padding-right:var(--portfolio-gutter)}
  .portfolio-location{padding-top:39px;padding-bottom:48px}
  .portfolio-location-header{margin-bottom:20px}
  .portfolio-location-kicker{font-size:.52rem}
  .portfolio-location h3{font-size:clamp(1.85rem,8.2vw,2.55rem);line-height:1.12}
  .portfolio-location-meta{gap:15px}
  .portfolio-location-description{font-size:.67rem;line-height:1.7}
  .portfolio-location-controls{padding-top:14px}
  .portfolio-location-summary{font-size:.66rem}
  .portfolio-rail-actions{gap:6px}
  .portfolio-rail-arrow{width:39px;height:39px}
  .portfolio-rail-track{gap:12px;padding-top:6px;padding-bottom:21px}
  .portfolio-photo-card button:hover,.portfolio-photo-card button:focus-visible{transform:none}
  .portfolio-lightbox-shell{padding:8px 10px 12px}
  .portfolio-lightbox-stage{grid-template-columns:1fr 1fr;grid-template-rows:minmax(0,1fr) 46px;gap:8px;padding-top:8px}
  .portfolio-lightbox-stage figure{grid-column:1/-1;grid-row:1}
  .portfolio-lightbox-stage img{max-height:calc(100dvh - 155px)}
  .portfolio-lightbox-prev{grid-column:1;grid-row:2;justify-self:start}.portfolio-lightbox-next{grid-column:2;grid-row:2;justify-self:end}
}
@media(max-width:380px){
  .portfolio-intro h2{font-size:1.9rem}
  .portfolio-hero h1{font-size:2rem}
  .portfolio-location-controls{align-items:flex-start;flex-direction:column}
}
@media(hover:none){.portfolio-photo-card button:hover{transform:none}}
@media(prefers-reduced-motion:reduce){
  .portfolio-hero-image,.portfolio-location-index a,.portfolio-rail-viewport,.portfolio-rail-arrow,.portfolio-photo-card button,.portfolio-photo-card img,.portfolio-card-meta,.portfolio-lightbox{animation:none;scroll-behavior:auto;transition:none}
}
