:root{--paper:#eae9e2;--paper-deep:#dcded5;--ink:#1e211e;--ink-soft:#50534d;--line:#b9b9ae;--white:#faf9f3;--accent:#bd603b;--gutter:clamp(1.25rem,3.2vw,3.8rem);--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html.wheel-scrolling,html.skip-jump{scroll-behavior:auto!important}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:var(--white)}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
img{display:block;max-width:100%}
figure{margin:0}
.skip{position:absolute;z-index:100;top:-5rem;left:1rem;padding:.8rem 1rem;background:var(--ink);color:var(--white)}
.skip:focus{top:1rem}
.progress{position:fixed;z-index:90;top:0;left:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;pointer-events:none}
.case-header{position:fixed;z-index:80;top:0;right:0;left:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;min-height:5.4rem;padding:.85rem var(--gutter);border-bottom:1px solid rgba(255,255,255,.38);color:var(--white);transition:background .35s ease,color .35s ease,border-color .35s ease}
.case-header:not(.on-hero){background:rgba(234,233,226,.96);border-color:rgba(30,33,30,.2);color:var(--ink);backdrop-filter:blur(18px)}
body[data-hero-theme="light"] .case-header.on-hero{border-color:rgba(30,33,30,.28);color:var(--ink)}
html:not(.case-js) .case-header{position:absolute}
.case-brand{display:inline-flex;align-items:center;gap:.7rem;justify-self:start;font-size:.95rem;font-weight:800;letter-spacing:-.06em;line-height:1}
.case-brand-mark{display:grid;place-items:center;width:2rem;height:2rem;border:1.5px solid currentColor;border-radius:50%;font-size:1.2rem;font-weight:600}
.case-header-note,.case-header-nav{font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.case-header-nav{display:flex;justify-self:end;gap:clamp(1rem,2.5vw,2.5rem)}
.case-header-nav a{position:relative}
.case-header-nav a::after{content:"";position:absolute;right:0;bottom:-.35rem;left:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.case-header-nav a:hover::after,.case-header-nav a:focus-visible::after{transform:scaleX(1)}
.case-hero{position:relative;display:flex;min-height:100svh;min-height:max(43rem,100svh);overflow:hidden;isolation:isolate;background:#252722;color:var(--white)}
.case-cover{position:absolute;inset:0;z-index:0;overflow:hidden}
.case-cover img{width:100%;height:100%;object-fit:cover;object-position:var(--cover-position,center);filter:saturate(.86);transform:scale(1.055) translate3d(0,var(--cover-y,0px),0);animation:cover-enter 1.6s var(--ease) both}
.case-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.58),rgba(0,0,0,.06) 35%,rgba(0,0,0,.12) 55%,rgba(0,0,0,.7))}
body[data-hero-theme="light"] .case-hero{background:#edece7;color:var(--ink)}
body[data-hero-theme="light"] .case-cover::after{background:linear-gradient(180deg,rgba(245,244,240,.35),rgba(245,244,240,.02) 35%,rgba(245,244,240,.18) 65%,rgba(245,244,240,.86))}
@keyframes cover-enter{from{opacity:.5}to{opacity:1}}
.case-hero-inner{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;flex:1;padding:clamp(7rem,14vh,10rem) var(--gutter) clamp(1.4rem,3vh,2.5rem)}
.case-hero-top,.case-hero-foot{display:flex;justify-content:space-between;gap:2rem;font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.case-hero-top{animation:copy-enter 1s .1s var(--ease) both}
.case-hero-title-block{margin-top:auto;padding:4rem 0 clamp(2rem,6vh,5rem);animation:copy-enter 1.1s .16s var(--ease) both}
.case-type{margin:0 0 1.1rem;font-size:.74rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.case-hero h1{max-width:95rem;margin:0;font-size:clamp(5.4rem,12vw,15rem);font-weight:600;line-height:.79;letter-spacing:-.1em;text-transform:uppercase;overflow-wrap:anywhere}
body[data-case="metropolitan-al-mafraq-hotel"] .case-hero h1{font-size:clamp(4.4rem,9.4vw,11.5rem)}
body[data-case="al-nassr-garden"] .case-hero h1,body[data-case="sports-boulevard"] .case-hero h1,body[data-case="westeros-cigar-lounge"] .case-hero h1{font-size:clamp(4.4rem,9.2vw,11.5rem)}
.case-hero-foot{align-items:end;padding-top:1rem;border-top:1px solid currentColor;animation:copy-enter 1.1s .25s var(--ease) both}
.case-hero-foot p{max-width:34rem;margin:0;font-size:clamp(.9rem,1.1vw,1rem);font-weight:400;letter-spacing:0;line-height:1.4;text-transform:none}
.case-hero-foot a{display:inline-flex;align-items:center;gap:1rem;white-space:nowrap}
.case-hero-foot a span{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:1px solid currentColor;border-radius:50%;font-size:1.4rem;transition:transform .3s var(--ease)}
.case-hero-foot a:hover span{transform:translateY(5px)}
@keyframes copy-enter{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}
.section-index{display:flex;align-items:center;gap:.8rem;align-self:start;font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.section-index::before{content:"";display:block;width:1.6rem;height:1px;background:currentColor}
.case-overview,.case-applications{display:grid;grid-template-columns:.3fr 1fr;gap:clamp(2rem,6vw,8rem);padding:clamp(6rem,12vw,12rem) var(--gutter)}
#overview{scroll-margin-top:5rem}
.case-overview h2,.case-applications h2{max-width:62rem;margin:-.1em 0 2rem;font-size:clamp(3.3rem,7.4vw,8.4rem);font-weight:500;letter-spacing:-.075em;line-height:.94}
.case-overview h2 em,.case-applications h2 em{font-family:Georgia,serif;font-weight:400;color:var(--accent)}
.case-intro{max-width:47rem;margin:0;font-size:clamp(1.2rem,1.65vw,1.6rem);letter-spacing:-.035em;line-height:1.4}
.case-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:clamp(3rem,6vw,6rem) 0 0;padding-top:1rem;border-top:1px solid var(--ink)}
.case-facts div{min-width:0}
.case-facts dt{margin-bottom:.6rem;color:var(--ink-soft);font-size:.69rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.case-facts dd{margin:0;font-size:clamp(.95rem,1.2vw,1.2rem);line-height:1.3}
.case-gallery{padding:0 var(--gutter) clamp(7rem,11vw,11rem)}
.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin:0 0 clamp(2.5rem,5vw,5rem);padding-top:1rem;border-top:1px solid var(--ink)}
.gallery-heading p{max-width:36rem;margin:0;color:var(--ink-soft);font-size:clamp(.9rem,1.2vw,1.1rem)}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.5rem,5vw,5rem) clamp(1.2rem,3vw,3.5rem);align-items:start}
.gallery-figure{min-width:0}
.gallery-figure--wide{grid-column:1/-1}
.gallery-figure .image-wrap{overflow:hidden;background:var(--paper-deep)}
.gallery-figure img{width:100%;height:auto;filter:saturate(.9);transition:transform 1.1s var(--ease),filter .6s ease}
.gallery-figure:hover img{transform:scale(1.025);filter:saturate(1)}
.gallery-figure figcaption{display:flex;justify-content:space-between;gap:2rem;padding:.9rem 0 0;border-top:1px solid var(--ink);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.gallery-figure figcaption span:last-child{text-align:right;color:var(--ink-soft)}
.case-applications{background:#d8d9d0}
.case-applications h2{margin-bottom:3rem}
.application-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--ink)}
.application-list li{display:grid;grid-template-columns:3.5rem .8fr 1.2fr;gap:1.5rem;align-items:baseline;padding:1.55rem 0;border-bottom:1px solid var(--line)}
.application-list span{font-size:.72rem;font-weight:700;letter-spacing:.12em}
.application-list h3{margin:0;font-size:clamp(1.45rem,2.4vw,2.5rem);font-weight:500;line-height:1.08;letter-spacing:-.05em}
.application-list p{max-width:27rem;margin:0;color:var(--ink-soft);font-size:.94rem;line-height:1.45}
.case-note{display:grid;grid-template-columns:.3fr 1fr;gap:clamp(2rem,6vw,8rem);padding:clamp(4rem,8vw,8rem) var(--gutter);border-top:1px solid var(--line)}
.case-note p{max-width:47rem;margin:0;font-size:clamp(1rem,1.35vw,1.3rem);line-height:1.5}
.case-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:2rem;padding:1.5rem var(--gutter);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.case-nav a:last-child{text-align:right}
.case-nav--archive{display:block}.case-nav--archive a:last-child{text-align:left}
.case-nav a{transition:color .25s ease}
.case-nav a:hover{color:var(--accent)}
.case-next{display:grid;grid-template-columns:.32fr 1fr;gap:clamp(2rem,6vw,8rem);align-items:end;padding:clamp(5rem,10vw,10rem) var(--gutter);background:var(--ink);color:var(--paper)}
.case-next .section-index{align-self:start}
.case-next a{display:block}
.case-next strong{display:block;margin:0 0 1.5rem;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase}
.case-next h2{display:flex;align-items:end;justify-content:space-between;gap:1rem;min-width:0;margin:0;font-size:clamp(4rem,9.5vw,11rem);font-weight:500;letter-spacing:-.085em;line-height:.9;overflow-wrap:anywhere}
.case-next h2 span{display:inline-block;font-size:.45em;transition:transform .35s var(--ease)}
.case-next a:hover h2 span{transform:translate(8px,-8px)}
.case-contact{display:flex;justify-content:space-between;align-items:end;gap:3rem;padding:clamp(4rem,8vw,8rem) var(--gutter);background:var(--accent);color:var(--white)}
.case-contact h2{max-width:45rem;margin:0;font-size:clamp(2.6rem,5.5vw,6rem);font-weight:500;letter-spacing:-.065em;line-height:.98}
.case-contact a{flex:0 0 auto;padding-bottom:.45rem;border-bottom:1px solid currentColor;font-size:clamp(1rem,1.5vw,1.5rem)}
footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;padding:2.5rem var(--gutter) 3rem;background:var(--ink);color:var(--paper);font-size:.72rem;line-height:1.5}
footer p{margin:0}footer p:last-child{text-align:right}
body.drawer-embedded .case-header,body.drawer-embedded footer{display:none}
body.drawer-embedded{overscroll-behavior-y:contain}
body.drawer-embedded .case-hero{min-height:max(37rem,100svh)}
body.drawer-embedded .case-hero-inner{padding-top:clamp(3rem,8vh,5rem)}
.case-js .reveal{opacity:0;transform:translateY(38px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.case-js .reveal.is-visible{opacity:1;transform:none}
.case-js .gallery-figure.reveal{opacity:1;transform:none;transition:none}
.case-js .gallery-figure.reveal .image-wrap{clip-path:inset(0 0 100% 0);transition:clip-path 1.05s var(--ease)}
.case-js .gallery-figure.reveal.is-visible .image-wrap{clip-path:inset(0 0 0 0)}
.case-js .gallery-figure.reveal figcaption{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.case-js .gallery-figure.reveal.is-visible figcaption{opacity:1;transform:none;transition-delay:.18s}
@media(max-width:900px){
  .case-header{grid-template-columns:1fr auto}.case-header-note{display:none}
  .case-overview,.case-applications,.case-note,.case-next{grid-template-columns:1fr;gap:2.5rem}
  .case-hero h1{font-size:clamp(5rem,13vw,9rem)}
  body[data-case="metropolitan-al-mafraq-hotel"] .case-hero h1{font-size:clamp(4rem,10vw,7.5rem)}
  body[data-case="al-nassr-garden"] .case-hero h1,body[data-case="sports-boulevard"] .case-hero h1,body[data-case="westeros-cigar-lounge"] .case-hero h1{font-size:clamp(3.8rem,10vw,7.5rem)}
  .case-next h2{font-size:clamp(4rem,10vw,8rem)}
}
@media(max-width:640px){
  :root{--gutter:1.1rem}
  .case-header{min-height:4.4rem;gap:.5rem}.case-brand{font-size:.82rem}.case-brand-mark{width:1.7rem;height:1.7rem;font-size:1rem}.case-header-nav{gap:1rem;font-size:.62rem}
  .case-hero{min-height:39rem}.case-hero-inner{padding:6rem var(--gutter) 1.2rem}.case-hero-top{font-size:.61rem;gap:1rem}.case-hero-top span:last-child{text-align:right}
  .case-hero h1{font-size:clamp(4rem,18vw,7rem)}
  body[data-case="metropolitan-al-mafraq-hotel"] .case-hero h1{font-size:clamp(3.1rem,12.5vw,5rem)}
  body[data-case="al-nassr-garden"] .case-hero h1,body[data-case="sports-boulevard"] .case-hero h1,body[data-case="westeros-cigar-lounge"] .case-hero h1{font-size:clamp(2.7rem,11.5vw,4.7rem)}
  .case-title-block{padding-bottom:2.5rem}.case-hero-title-block{padding:3rem 0 2.5rem}.case-hero-foot{display:block}.case-hero-foot a{margin-top:1rem}.case-hero-foot a span{width:2.3rem;height:2.3rem}
  .case-overview,.case-applications{padding:5rem var(--gutter)}.case-overview h2,.case-applications h2{font-size:clamp(3rem,13vw,5rem)}.case-intro{font-size:1.1rem}
  .case-facts{grid-template-columns:1fr;gap:1.2rem}.case-facts div{padding-bottom:1.2rem;border-bottom:1px solid var(--line)}.case-facts div:last-child{border-bottom:0}
  .case-gallery{padding:0 var(--gutter) 5rem}.gallery-heading{display:block}.gallery-heading p{margin-top:1rem}.gallery-grid{grid-template-columns:1fr;gap:2.5rem}.gallery-figure--wide{grid-column:auto}
  .gallery-figure figcaption{font-size:.64rem}.application-list li{grid-template-columns:2.5rem 1fr;gap:.4rem 1rem}.application-list p{grid-column:2;font-size:.88rem}
  .case-note{padding:4rem var(--gutter)}.case-nav{grid-template-columns:1fr 1fr;gap:1rem;font-size:.63rem}.case-nav a:nth-child(2){display:none}
  .case-next{padding:5rem var(--gutter)}.case-next h2{font-size:clamp(3.6rem,14vw,6rem)}
  body[data-case="eviza-vibes"] .case-next h2{font-size:clamp(2.7rem,10vw,4.5rem)}
  .case-contact{display:block;padding:4rem var(--gutter)}.case-contact a{display:inline-block;margin-top:2rem}
  footer{grid-template-columns:1fr;gap:1rem;padding:2rem var(--gutter)}footer p:last-child{text-align:left}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.case-cover img{animation:none;transform:none!important}.case-hero-top,.case-hero-title-block,.case-hero-foot{animation:none}
  .case-js .reveal,.case-js .reveal.is-visible,.case-js .gallery-figure.reveal figcaption{opacity:1;transform:none;transition:none}
  .case-js .gallery-figure.reveal .image-wrap{clip-path:none;transition:none}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
