/* Studio Spaces — listing + detail */
.sp{--bg:#0b0c0d;--fg:#fff;--mut:rgba(255,255,255,.6);--dim:rgba(255,255,255,.38);--line:rgba(255,255,255,.12);
  background:var(--bg);color:var(--fg);font-family:Almarai,"Helvetica Neue",Arial,sans-serif;padding:0 4vw 12vh}
.sp *{box-sizing:border-box}
.sp a{color:inherit;text-decoration:none}
.sp img{display:block;width:100%;height:100%;object-fit:cover}

/* shared */
.sp-kicker{margin:0 0 18px;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.sp-reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.22,1,.36,1)}
.sp-reveal.in{opacity:1;transform:none}
.sp-btn{display:inline-flex;align-items:center;gap:10px;padding:16px 26px;border:1px solid #fff;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:background .3s,color .3s}
.sp-btn:hover{background:#fff;color:#000}
.sp-btn.ghost{border-color:var(--line)}
.sp-btn.ghost:hover{border-color:#fff}

/* ---------- listing ---------- */
.sp-hero{padding:16vh 0 8vh;text-align:center}
.sp-hero h1{margin:0;font-size:clamp(44px,7vw,120px);font-weight:800;line-height:.92;letter-spacing:-.03em}
.sp-hero h1 span{display:block;margin-top:.3em;font-size:.24em;font-weight:300;letter-spacing:.14em;text-transform:uppercase}
.sp-hero p{max-width:640px;margin:28px auto 0;font-size:clamp(14px,1vw,16px);line-height:1.5;font-weight:300;color:var(--mut)}
.sp-stats{display:flex;justify-content:center;gap:clamp(28px,6vw,96px);margin:44px 0 0;padding:0;list-style:none}
.sp-stats b{display:block;font-size:clamp(28px,3vw,44px);font-weight:800;letter-spacing:-.02em}
.sp-stats span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}

.sp-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.4vw,40px)}
.sp-card{position:relative;display:block}
.sp-card:nth-child(3n+1){grid-column:1/-1}
.sp-card .ph{position:relative;overflow:hidden;aspect-ratio:3/2;background:#151617}
.sp-card:nth-child(3n+1) .ph{aspect-ratio:21/9}
.sp-card .ph img{transform:scale(1.02);transition:transform 1.2s cubic-bezier(.22,1,.36,1),filter .6s}
.sp-card:hover .ph img{transform:scale(1.07);filter:brightness(.8)}
.sp-card .ph:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),transparent 45%);pointer-events:none}
.sp-card .letter{position:absolute;left:24px;bottom:14px;z-index:1;font-size:clamp(64px,8vw,140px);font-weight:800;line-height:.8;letter-spacing:-.04em}
.sp-card .view{position:absolute;right:20px;bottom:20px;z-index:1;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.12);backdrop-filter:blur(8px);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}
.sp-card:hover .view{opacity:1;transform:none}
.sp-card .meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0 0;border-bottom:1px solid var(--line);padding-bottom:14px}
.sp-card h2{margin:0;font-size:clamp(18px,1.5vw,24px);font-weight:700}
.sp-card .meta p{margin:6px 0 0;font-size:14px;font-weight:300;color:var(--mut)}
.sp-card .meta dl{display:flex;gap:28px;margin:0;text-align:right;flex:none}
.sp-card dt{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.sp-card dd{margin:4px 0 0;font-size:15px;font-weight:700}

.sp-cta{margin:14vh 0 0;padding:8vh 0 0;border-top:1px solid var(--line);text-align:center}
.sp-cta h2{margin:0 0 28px;font-size:clamp(30px,4vw,64px);font-weight:800;letter-spacing:-.03em;line-height:.95}
.sp-cta h2 span{font-weight:300}
.sp-cta .row{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

/* ---------- detail ---------- */
.sd-hero{position:relative;margin:0 -4vw;height:88vh;min-height:520px;overflow:hidden}
.sd-hero img{transform:scale(1.06);transition:transform 2.4s cubic-bezier(.22,1,.36,1)}
.sd-hero.in img{transform:scale(1)}
.sd-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(11,12,13,1),rgba(11,12,13,.15) 55%,rgba(11,12,13,.35))}
.sd-hero .cap{position:absolute;left:4vw;right:4vw;bottom:6vh;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.sd-hero .back{display:inline-flex;gap:8px;margin-bottom:18px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.sd-hero .back:hover{color:#fff}
.sd-hero h1{margin:0;font-size:clamp(56px,10vw,180px);font-weight:800;line-height:.82;letter-spacing:-.04em}
.sd-hero h1 span{font-weight:300}
.sd-hero .tag{max-width:360px;margin:0;font-size:clamp(14px,1.1vw,18px);line-height:1.4;font-weight:300;color:var(--mut)}

.sd-specs{display:grid;grid-template-columns:repeat(3,1fr);margin:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sd-specs div{padding:28px 0;border-left:1px solid var(--line);padding-left:24px}
.sd-specs div:first-child{border-left:0;padding-left:0}
.sd-specs dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.sd-specs dd{margin:10px 0 0;font-size:clamp(20px,2vw,32px);font-weight:700;letter-spacing:-.01em}

.sd-sec{display:grid;grid-template-columns:280px 1fr;gap:clamp(24px,5vw,80px);padding:10vh 0 0}
.sd-sec h2{margin:0;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}

.sd-gal{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.sd-gal button{all:unset;cursor:zoom-in;overflow:hidden;background:#151617;aspect-ratio:4/3;grid-column:span 2}
.sd-gal button:nth-child(5n+1){grid-column:span 4;grid-row:span 2;aspect-ratio:auto}
.sd-gal img{transition:transform .9s cubic-bezier(.22,1,.36,1)}
.sd-gal button:hover img{transform:scale(1.05)}

.sd-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.sd-chips li{padding:10px 18px;border:1px solid var(--line);border-radius:999px;font-size:14px;font-weight:300}

.sd-kit{margin:0;padding:0;list-style:none;counter-reset:k}
.sd-kit li{display:grid;grid-template-columns:48px 1fr;padding:16px 0;border-bottom:1px solid var(--line);font-size:clamp(15px,1.1vw,18px);font-weight:300;counter-increment:k}
.sd-kit li:first-child{border-top:1px solid var(--line)}
.sd-kit li:before{content:counter(k,decimal-leading-zero);font-size:12px;color:var(--dim);padding-top:4px}

.sd-rates{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.sd-rate{padding:28px;border:1px solid var(--line);transition:border-color .3s,background .3s}
.sd-rate:hover{border-color:#fff;background:rgba(255,255,255,.03)}
.sd-rate dt{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.sd-rate dd{margin:14px 0 0;font-size:clamp(28px,2.6vw,42px);font-weight:800;letter-spacing:-.02em}
.sd-rate dd small{font-size:13px;font-weight:300;letter-spacing:0;color:var(--mut);margin-right:6px}
.sd-note{margin:14px 0 0;font-size:12px;letter-spacing:.06em;color:var(--dim)}

.sd-terms{margin:0;padding:0;list-style:none}
.sd-terms li{position:relative;padding:0 0 14px 22px;font-size:14px;line-height:1.5;font-weight:300;color:var(--mut)}
.sd-terms li:before{content:"";position:absolute;left:0;top:.6em;width:8px;height:1px;background:var(--mut)}

.sd-book{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin:12vh 0 0;padding:6vh 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sd-book h2{margin:0;font-size:clamp(28px,3.4vw,56px);font-weight:800;letter-spacing:-.03em;line-height:.95}
.sd-book h2 span{font-weight:300}

.sd-pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:6vh 0 0}
.sd-pager a{position:relative;display:block;overflow:hidden;aspect-ratio:16/7;background:#151617}
.sd-pager img{opacity:.45;transition:opacity .5s,transform 1s cubic-bezier(.22,1,.36,1)}
.sd-pager a:hover img{opacity:.7;transform:scale(1.04)}
.sd-pager span{position:absolute;left:24px;bottom:20px;z-index:1}
.sd-pager small{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.sd-pager b{font-size:clamp(22px,2.4vw,38px);font-weight:800;letter-spacing:-.02em}
.sd-pager a:last-child span{left:auto;right:24px;text-align:right}

/* lightbox */
.sd-lb{position:fixed;inset:0;z-index:99500;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.94)}
.sd-lb.open{display:flex}
.sd-lb img{max-width:92vw;max-height:86vh;width:auto;height:auto;object-fit:contain}
.sd-lb button{position:absolute;background:none;border:0;color:#fff;font:300 40px/1 Almarai,sans-serif;cursor:pointer;padding:16px;opacity:.7}
.sd-lb button:hover{opacity:1}
.sd-lb .x{top:16px;right:16px;z-index:2;width:48px;height:48px;padding:0;font-size:0;border-radius:50%;background:rgba(255,255,255,.12);opacity:1}
.sd-lb .x::before,.sd-lb .x::after{content:"";position:absolute;top:50%;left:50%;width:20px;height:2px;margin:-1px 0 0 -10px;background:#fff;border-radius:1px;transform:rotate(45deg)}
.sd-lb .x::after{transform:rotate(-45deg)}
.sd-lb .x:hover{background:rgba(255,255,255,.25)}
.sd-lb .p,.sd-lb .n{z-index:2}
.sd-lb{overflow:hidden}
.sd-lb img{cursor:zoom-in;touch-action:none;user-select:none;-webkit-user-select:none;will-change:transform}
.sd-lb.zoomed img{cursor:zoom-out;max-width:92vw;max-height:86vh}
.sd-lb.dragging img,.sd-lb.dragging{cursor:grabbing!important}
.sd-lb.zoomed .p,.sd-lb.zoomed .n,.sd-lb.zoomed .c{opacity:0;pointer-events:none}
.sd-lb .p{left:8px}.sd-lb .n{right:8px}
.sd-lb .c{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.2em;color:var(--mut)}

@media (max-width:900px){
  .sp{padding:0 16px 10vh}
  .sp-grid{grid-template-columns:1fr}
  .sp-card .ph,.sp-card:nth-child(3n+1) .ph{aspect-ratio:4/3}
  .sp-card .view{opacity:1;transform:none}
  .sp-card .meta{flex-direction:column}
  .sp-card .meta dl{text-align:left}
  .sd-hero{margin:0 -16px;height:76vh}
  .sd-hero .cap{left:16px;right:16px;flex-direction:column;align-items:flex-start}
  .sd-specs{grid-template-columns:1fr}
  .sd-specs div{border-left:0;padding-left:0;border-top:1px solid var(--line)}
  .sd-specs div:first-child{border-top:0}
  .sd-sec{grid-template-columns:1fr;padding-top:8vh}
  .sd-gal{grid-template-columns:1fr 1fr}
  .sd-gal button,.sd-gal button:nth-child(5n+1){grid-column:span 1;grid-row:auto;aspect-ratio:4/3}
  .sd-gal button:nth-child(5n+1){grid-column:1/-1}
  .sd-pager{grid-template-columns:1fr}
}
/* sharp edges on all buttons/pills */
.sp-btn,.sp-card .view,.sd-chips li{border-radius:0!important}
.sp-btn:hover{color:#000!important}
html body .sp a.sp-btn:hover{background:#fff!important;color:#000!important;border-color:#fff!important}
/* gallery: hero image full width, then even rows of 3; last row stretches to fill */
.sd-gal button,.sd-gal button:nth-child(5n+1){grid-column:span 2;grid-row:auto;aspect-ratio:4/3}
.sd-gal button:first-child{grid-column:1/-1;aspect-ratio:16/8}
.sd-gal button.w3{grid-column:span 3;aspect-ratio:16/9}
.sd-gal button.w6{grid-column:1/-1;aspect-ratio:16/8}
@media (max-width:900px){.sd-gal{grid-template-columns:1fr 1fr}.sd-gal button,.sd-gal button.w3{grid-column:span 1;aspect-ratio:4/3}.sd-gal button:first-child,.sd-gal button.w6,.sd-gal button.odd-last{grid-column:1/-1}}
.sd-sec.sd-full{grid-template-columns:1fr;gap:24px}

/* ---------- props / equipment / set build ---------- */
.pg-hero{padding:16vh 0 7vh;text-align:center}
.pg-hero h1{margin:0;font-size:clamp(44px,7vw,120px);font-weight:800;line-height:.92;letter-spacing:-.03em}
.pg-hero h1 span{display:block;margin-top:.3em;font-size:.24em;font-weight:300;letter-spacing:.14em;text-transform:uppercase}
.pg-hero p{max-width:640px;margin:28px auto 0;font-size:clamp(14px,1vw,16px);line-height:1.5;font-weight:300;color:var(--mut)}
.pg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,28px)}
.pg-item{display:block}
.pg-item .ph{overflow:hidden;aspect-ratio:4/5;background:#151617}
.pg-item img{transition:transform 1s cubic-bezier(.22,1,.36,1)}
.pg-item:hover img{transform:scale(1.05)}
.pg-item .row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 0 12px;border-bottom:1px solid var(--line)}
.pg-item h3{margin:0;font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pg-item .pr{font-size:13px;font-weight:300;color:var(--mut);white-space:nowrap}
.pg-item .ask{display:inline-block;margin-top:12px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);transition:color .3s}
.pg-item .ask:hover{color:#fff}
.pg-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pg-cat{padding:32px 28px;border:1px solid var(--line);transition:border-color .3s}
.pg-cat:hover{border-color:#fff}
.pg-cat .n{font-size:12px;color:var(--dim)}
.pg-cat h3{margin:18px 0 14px;font-size:clamp(20px,1.7vw,28px);font-weight:800;letter-spacing:-.01em}
.pg-cat ul{margin:0;padding:0;list-style:none}
.pg-cat li{padding:10px 0;border-top:1px solid var(--line);font-size:14px;font-weight:300;color:var(--mut)}
.pg-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.pg-steps div{padding:28px 24px 28px 0}
.pg-steps div+div{padding-left:24px;border-left:1px solid var(--line)}
.pg-steps b{display:block;font-size:12px;color:var(--dim);font-weight:400}
.pg-steps h3{margin:14px 0 10px;font-size:20px;font-weight:800}
.pg-steps p{margin:0;font-size:14px;line-height:1.5;font-weight:300;color:var(--mut)}
.pg-mosaic{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.pg-mosaic div{overflow:hidden;aspect-ratio:4/3;grid-column:span 2;background:#151617}
.pg-mosaic div:nth-child(1),.pg-mosaic div:nth-child(2){grid-column:span 3;aspect-ratio:16/10}
.pg-soon{margin:0;font-size:13px;letter-spacing:.06em;color:var(--dim)}
@media (max-width:1000px){.pg-grid{grid-template-columns:repeat(2,1fr)}.pg-cats{grid-template-columns:1fr}.pg-steps{grid-template-columns:1fr 1fr}.pg-steps div:nth-child(3){padding-left:0;border-left:0}.pg-steps div{border-top:1px solid var(--line)}}
@media (max-width:600px){.pg-steps{grid-template-columns:1fr}.pg-steps div,.pg-steps div+div{padding-left:0;border-left:0}.pg-mosaic{grid-template-columns:1fr 1fr}.pg-mosaic div,.pg-mosaic div:nth-child(1),.pg-mosaic div:nth-child(2){grid-column:span 1;aspect-ratio:4/3}.pg-mosaic div:nth-child(1){grid-column:1/-1}}
