/* Both photographs and all hit regions share one source coordinate system.
   The masks reveal carved lettering in place; no detached image tiles. */
:root{--wall-ease:cubic-bezier(.22,.61,.24,1)}
.room-stage{overflow:clip}
.room-environment{inset:0;background:#e9dcc7;animation:none;transform:none;overflow:hidden}
.wall-plane,.decoder-field{position:absolute;left:0;top:0;width:1672px;height:941px;transform-origin:0 0;transition:transform 1900ms var(--wall-ease);direction:ltr}
.wall-original,.wall-reference{position:absolute;inset:0;width:1672px;height:941px;max-width:none;display:block}
.wall-reveal-cell{opacity:0}
.wall-plane.is-decoding .wall-reveal-cell{animation:stone-decipher 720ms ease-in-out var(--glyph-delay) both}
.wall-plane.is-complete .wall-reveal-cell{opacity:1}
@keyframes stone-decipher{from{opacity:0}to{opacity:1}}
html[data-wall-panning=true] .wall-plane,html[data-wall-panning=true] .decoder-field{transition-duration:950ms}
.room-light{transition:opacity 1700ms var(--wall-ease)}
html[data-view=services] .room-light{opacity:0}
.room-sculpture{transition:top 1700ms var(--wall-ease),width 1700ms var(--wall-ease),height 1700ms var(--wall-ease);user-select:none;-webkit-user-select:none}
.floor-shadow{transition:top 1700ms,width 1700ms,opacity 1700ms}
.sculpture-hint{transition:opacity .5s}
html[data-view=services] .room-sculpture{top:17%;width:clamp(68px,9vh,110px);height:clamp(68px,9vh,110px)}
html[data-view=services] .floor-shadow{opacity:0}
html[data-view=services] .sculpture-hint{opacity:0}
html[data-view=services] .chapter-copy,html[data-view=services] .chapter-nav,html[data-view=services] .discover-next{opacity:0;visibility:hidden;pointer-events:none}
.masthead .services-trigger{position:relative}
.masthead .services-trigger:after{content:'';position:absolute;bottom:0;inset-inline:0;height:1px;background:#806239;transform:scaleX(0);transition:transform .4s}
html[data-view=services] .masthead .services-trigger:after{transform:scaleX(1)}
.decoder{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .7s,visibility .7s;outline:none}
html[data-view=services] .decoder{opacity:1;visibility:visible}
.decoder-heading{position:absolute;top:22%;left:50%;width:90%;transform:translateX(-50%);text-align:center;color:#654c32}
.decoder-heading h2{font:10px/1.5 var(--mono);letter-spacing:.24em;text-transform:uppercase;outline:none}
#decoder-status{font:10px/1.5 var(--body);color:#70563a;margin:7px 0 0}
.decoder-field{user-select:none;-webkit-user-select:none;pointer-events:none}
.decoder-node{position:absolute;margin:0;padding:0;min-height:44px;pointer-events:auto;appearance:none;background:none;border:0;cursor:pointer;line-height:1;touch-action:pan-y}
.decoder-node:focus-visible{outline:1.5px solid #785631aa;outline-offset:8px;border-radius:4px}
.decoder-node:after{content:'';position:absolute;bottom:-5px;left:10%;right:10%;height:1px;background:#87664188;transform:scaleX(0);transition:transform .4s}
.decoder-node:hover:after,.decoder-node:focus-visible:after{transform:scaleX(1)}
.decoder-toolbar{position:absolute;bottom:12%;left:50%;transform:translateX(-50%);display:flex;justify-content:center;align-items:center;gap:42px;pointer-events:auto}
.decoder-toolbar button{font:9px/1.4 var(--mono);display:flex;align-items:center;gap:12px;padding:10px 0;color:#634c32;white-space:nowrap}
.decoder-toolbar span{font-size:15px}
.decoder-toolbar button:hover{color:#32261b}
.wall-pan,.wall-pan-hint{display:none}
html[data-wall-pan=true] .wall-pan{position:absolute;top:76%;left:50%;transform:translateX(-50%);display:flex;direction:ltr;gap:10px;pointer-events:auto}
.wall-pan button{padding:10px;width:38px;height:38px;display:grid;place-content:center;font:9px var(--mono);border-bottom:1px solid transparent;color:#907654}
.wall-pan button[aria-pressed=true]{border-color:#745535;color:#3b2819}
html[data-wall-pan=true] .wall-pan-hint{position:absolute;display:block;top:calc(76% + 46px);width:100%;text-align:center;color:#715739;font:9px var(--body)}
.service-focused>h2,.service-focused>.intro,.service-focused>.eyebrow{display:none}
.service-focused .service-list{margin-top:0;border:0}
.service-focused [data-service-detail]:not(.is-selected){display:none}
.service-focused details{border:0}
.service-focused summary{font-size:37px;align-items:baseline;padding:0 0 16px}
.service-focused .service-number{font-size:11px}
.service-focused .service-body{padding:0}
.service-focused .service-body h3{font-size:30px}
.service-focused .panel-next{margin-top:18px}
html:lang(ar) .decoder-heading h2{font-size:16px;letter-spacing:0}
html:lang(ar) #decoder-status{font-size:14px}
html:lang(ar) .decoder-toolbar button{font-size:13px}
html:lang(ar) .wall-pan-hint{font-family:'Noto Naskh Arabic',serif;font-size:13px}
@media(max-width:760px){
 .masthead nav>.services-trigger{display:inline-flex;font-size:10px}.masthead nav{gap:18px}.masthead{gap:12px}
 html[data-view=services] .room-sculpture{top:16%;width:10vh;height:10vh;max-width:100px;max-height:100px}
 .decoder-heading{top:23%;width:94%}.decoder-heading h2{font-size:8px;letter-spacing:.15em}#decoder-status{font-size:9px;margin-top:4px}
 .decoder-toolbar{bottom:7%;gap:28px}.decoder-toolbar button{font-size:8px;padding:8px 0}.decoder-toolbar span{font-size:14px}
 html:lang(ar) .masthead .services-trigger{font-size:14px}
 html:lang(ar) .decoder-heading h2{font-size:14px}
 html:lang(ar) #decoder-status{font-size:11px}
 html:lang(ar) .decoder-toolbar button{font-size:12px}
 .service-focused summary{font-size:31px}
}
@media(max-height:610px){
 html[data-view=services] .room-sculpture{top:19%;width:10svh;height:10svh}
 .decoder-heading{top:25%}.decoder-toolbar{bottom:6%}
 html[data-wall-pan=true] .wall-pan{top:76%}
 html[data-wall-pan=true] .wall-pan-hint{top:calc(76% + 37px)}
 .wall-pan button{height:30px}
}
@media(prefers-reduced-motion:reduce){.wall-plane,.decoder-field{transition:none!important}.wall-plane.is-decoding .wall-reveal-cell{animation:none;opacity:1}}
html[data-view=services][data-wall-pan=true] .room-stage{touch-action:pan-y}

.wall-reference{opacity:0;transition:opacity 900ms var(--wall-ease)}
html[data-view=services] .wall-reference{opacity:1}
