/* IBS SIGNATURE OPENING — one full-size image, revealed by an expanding mask.
 * Content: build_home_content.py, named editable blocks. Timing: homepage.js.
 * Loaded last. Global typography and identity composition live in signature.css.
 * Static defaults are inherited; these rules enhance only a measured, fitting
 * opening. Native scroll, reduced motion and the ordinary page flow are kept.
 */
.ibsh-hero-frame { display:none; }
.ibsh-page .ibsh-opening { --ibsh-frame-left:52%; --ibsh-frame-right:6%; --ibsh-frame-top:16%; --ibsh-frame-bottom:15%; }
.ibsh-page.ibsh-motion-ready .ibsh-opening { height:calc(175svh - var(--ibsh-header-h)); }
.ibsh-page.ibsh-motion-ready .ibsh-hero-stage { position:sticky; top:calc(var(--ibsh-header-h) + var(--ibsh-top)); height:calc(100svh - var(--ibsh-header-h) - var(--ibsh-top)); min-height:0; display:block; overflow:hidden; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-copy { position:relative; z-index:3; width:52%; height:100%; display:flex; flex-direction:column; justify-content:center; padding:28px 4vw 28px var(--ibsh-gutter); }
.ibsh-page.ibsh-motion-ready .ibsh-hero-copy h1 { font-family:var(--ibsh-serif); font-size:clamp(46px,5.4vw,86px); line-height:1.05; letter-spacing:-.045em; font-weight:400; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-intro { max-width:400px; font-size:15px; line-height:1.75; margin-top:24px!important; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-copy .ibsh-kicker { font-size:9px; margin-bottom:23px!important; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-copy .ibsh-actions { margin-top:25px; gap:20px; }
.ibsh-page.ibsh-motion-ready .ibsh-scroll-cue { margin-top:30px; }
/* Both the photograph and its overlay stay on the same full-viewport plane.
 * Only the clipping mask opens. This is the original Signature treatment,
 * rather than changing the dimensions of an object-fit image container.
 */
.ibsh-page.ibsh-motion-ready .ibsh-opening .ibsh-hero-evidence { position:absolute; inset:0; width:100%; height:100%; min-height:0; z-index:1; clip-path:inset(var(--ibsh-frame-top) var(--ibsh-frame-right) var(--ibsh-frame-bottom) var(--ibsh-frame-left)); will-change:clip-path; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-image img { width:100%; height:100%; object-fit:cover; object-position:center 70%; transform:scale(var(--ibsh-zoom,1.1)); transform-origin:center; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-evidence::after { background:linear-gradient(0deg,#171914c9,transparent 65%),#1719144d; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-project { left:calc(var(--ibsh-frame-left) + 24px); right:calc(var(--ibsh-frame-right) + 24px); bottom:calc(var(--ibsh-frame-bottom) + 23px); opacity:var(--ibsh-frame-opacity,1); }
.ibsh-page.ibsh-motion-ready .ibsh-hero-project strong { font:400 21px/1.35 var(--ibsh-serif); }
.ibsh-page.ibsh-motion-ready .ibsh-hero-frame { display:block; position:absolute; top:var(--ibsh-frame-top); right:var(--ibsh-frame-right); bottom:var(--ibsh-frame-bottom); left:var(--ibsh-frame-left); border:1px solid #f7f1e76b; z-index:2; opacity:var(--ibsh-frame-opacity,1); pointer-events:none; }
.ibsh-hero-frame::before,.ibsh-hero-frame::after { content:''; position:absolute; width:9px; height:9px; border-color:#c6a47b; border-style:solid; }
.ibsh-hero-frame::before { top:-5px; left:-5px; border-width:1px 0 0 1px; }
.ibsh-hero-frame::after { bottom:-5px; right:-5px; border-width:0 1px 1px 0; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-after { padding:35px var(--ibsh-gutter); background:#171914b8; }
.ibsh-page.ibsh-motion-ready .ibsh-hero-after h2 { font:400 clamp(43px,5.7vw,84px)/1.08 var(--ibsh-serif); letter-spacing:-.045em; max-width:1000px; }
.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-copy { padding:28px var(--ibsh-gutter) 28px 4vw; }
.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-copy h1 { font-family:var(--ibsh-sans); font-size:clamp(38px,4.4vw,66px); line-height:1.4; letter-spacing:0; }
.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-opening .ibsh-hero-evidence { clip-path:inset(var(--ibsh-frame-top) var(--ibsh-frame-left) var(--ibsh-frame-bottom) var(--ibsh-frame-right)); }
.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-frame { left:var(--ibsh-frame-right); right:var(--ibsh-frame-left); }
.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-project { left:calc(var(--ibsh-frame-right) + 24px); right:calc(var(--ibsh-frame-left) + 24px); }
.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-project strong,.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-after h2 { font-family:var(--ibsh-sans); letter-spacing:0; line-height:1.45; }
@media(min-width:901px) and (max-height:760px) {
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy h1 { font-size:clamp(40px,4.3vw,62px); }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy .ibsh-kicker { margin-bottom:16px!important; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-intro { font-size:14px; margin-top:18px!important; line-height:1.65; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy .ibsh-actions { margin-top:20px; }
 .ibsh-page.ibsh-motion-ready .ibsh-scroll-cue { margin-top:20px; }
 .ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-copy h1 { font-size:clamp(35px,3.7vw,50px); }
}
@media(max-width:900px) {
 .ibsh-page .ibsh-opening { --ibsh-frame-left:6%; --ibsh-frame-right:6%; --ibsh-frame-top:60%; --ibsh-frame-bottom:4%; }
 .ibsh-page.ibsh-motion-ready .ibsh-opening { height:calc(165svh - var(--ibsh-header-h)); }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy,.ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-copy { width:100%; height:auto; padding:22px var(--ibsh-gutter); justify-content:start; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy h1 { font-size:clamp(35px,6vw,52px); line-height:1.06; }
 .ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-copy h1 { font-size:clamp(30px,5.6vw,45px); line-height:1.4; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy .ibsh-kicker { margin-bottom:15px!important; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-intro { max-width:560px; font-size:14px; line-height:1.7; margin-top:17px!important; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy .ibsh-actions { margin-top:18px; gap:18px; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-copy .ibsh-button { min-height:43px; padding:10px 16px; }
 .ibsh-page.ibsh-motion-ready .ibsh-scroll-cue { display:none; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-project { bottom:calc(var(--ibsh-frame-bottom) + 17px); left:calc(var(--ibsh-frame-left) + 17px); right:calc(var(--ibsh-frame-right) + 17px); gap:5px; }
 .ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-project { left:calc(var(--ibsh-frame-right) + 17px); right:calc(var(--ibsh-frame-left) + 17px); }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-project strong { font-size:18px; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-project>span:last-child { font-size:10px; }
 .ibsh-page.ibsh-motion-ready .ibsh-hero-after h2 { font-size:clamp(35px,7vw,59px); }
 .ibsh-page.ibsh-motion-ready[dir=rtl] .ibsh-hero-after h2 { font-size:clamp(30px,5.5vw,46px); }
}
@media(prefers-reduced-motion:reduce) {
 .ibsh-hero-frame { display:none!important; }
 .ibsh-page .ibsh-hero-evidence { clip-path:none!important; will-change:auto!important; }
 .ibsh-page .ibsh-hero-image img { will-change:auto; }
}
