/* V3 signature motion: true footage, source-aware photo gallery, and 2.5D corporate assembly.
 * All real first-party Studioart media. Does not replace locked CI tokens.
 */
.page-fotos .p-gallery-grid{
 display:grid;grid-template-columns:repeat(12,minmax(0,1fr));
 column-gap:clamp(12px,1.65vw,24px);row-gap:clamp(17px,2.5vw,34px);
 align-items:start;grid-auto-flow:row dense;
}
.page-fotos .photo-item,
.page-fotos .photo-item:nth-child(n){
 display:block;min-width:0;width:100%;align-self:start;margin:0;
 grid-column:span 4;
}
.page-fotos .photo-item.photo-item-wide{
 display:block;width:100%;grid-column:span 8;
}
.page-fotos .p-gallery-grid .photo-item .img-frame,
.page-fotos .p-gallery-grid .photo-item:nth-child(n) .img-frame{
 width:100%;height:auto!important;min-height:0!important;aspect-ratio:auto!important;
 display:block;overflow:hidden;background:#e8e3dc;
}
.page-fotos .p-gallery-grid .photo-item .img-frame>img,
.page-fotos .p-gallery-grid .photo-item:nth-child(n) .img-frame>img{
 display:block;position:relative;width:100%;height:auto!important;
 max-height:none!important;object-fit:contain!important;
}
.page-fotos .p-gallery-grid .photo-item.photo-item-wide .img-frame>img{
 width:100%;height:auto;max-height:none!important;object-fit:contain!important;
}
.page-fotos .photo-item figcaption{flex-wrap:wrap;line-height:1.5}
.page-fotos .p-close-image .img-frame{background:#e6e2da}
.page-fotos .p-close-image .img-frame>img{object-fit:contain!important;object-position:center center}

/* Business imagery: preserve whole real people's heads, hands and environments. */
.page-business .b-focus-panel .img-frame{background:#e3e1db;min-width:0}
.page-business .b-focus-panel .img-frame>img{object-fit:contain!important;object-position:center!important}
.page-business .b-evidence-gallery{align-items:start;gap:clamp(12px,2vw,27px)}
.page-business .b-evidence-card:nth-child(n){min-width:0;margin:0}
.page-business .b-evidence-card:nth-child(n) .img-frame{
 aspect-ratio:auto!important;min-width:0;
 background:#292b2e;margin:0!important;height:auto!important;
}
.page-business .b-evidence-card:nth-child(n) .img-frame>img{
 width:100%;height:auto!important;object-fit:contain!important;position:relative;
}
.page-business .b-evidence-card:nth-child(2){padding-top:40px}
.page-business .b-evidence-card:nth-child(3){padding-top:95px}

/* 2.5D genuine-photographic image assembly: five independently flying physical slices.
   Inspired by the scroll-craft dimensional-motion principles; no synthetic model assets. */
.b-assemble-journey{--b-progress:0;position:relative;height:220svh;min-height:1300px;background:#0a0b0e;color:#fff;isolation:isolate}
.b-assemble-sticky{
 position:sticky;top:0;height:100svh;min-height:660px;display:flex;flex-direction:column;
 align-items:stretch;padding:clamp(92px,12vh,135px) clamp(23px,6vw,98px) 40px;overflow:hidden;
}
.b-assemble-sticky::before{
 content:"";position:absolute;pointer-events:none;inset:0;
 background:radial-gradient(ellipse at 63% 62%,#3e353088,transparent 48%),linear-gradient(#0c0f12,#11151c);
 z-index:-2;
}
.b-assemble-head{position:relative;z-index:2;max-width:1270px;display:flex;align-items:end;justify-content:space-between;gap:25px;margin:0 auto 19px;width:100%;flex-wrap:wrap}
.b-assemble-head>.eyebrow{flex:0 0 100%;color:var(--ci-gold)}
.b-assemble-head h2{font:520 clamp(43px,5.4vw,88px)/1.06 var(--ci-font);letter-spacing:-.054em;margin:0;max-width:850px}
.b-assemble-head h2 em{color:var(--ci-gold);font-weight:400;font-style:normal}
.b-assemble-head>p{font-size:clamp(13px,1vw,17px);line-height:1.65;color:#cbd0cd;max-width:335px;margin:0 0 7px}
.b-assemble-stage{
 position:relative;isolation:isolate;flex:1 1 auto;min-height:250px;width:min(1040px,80vw);max-height:53vh;
 margin:6px auto 15px;perspective:1200px;transform-style:preserve-3d;
 aspect-ratio:16/10;
}
.b-assemble-stage::before{
 content:"";position:absolute;inset:-9px;z-index:-1;border:1px solid #c7b18844;
 box-shadow:0 50px 110px #000a;pointer-events:none;
}
.b-assemble-slices{
 display:flex;width:100%;height:100%;transform-style:preserve-3d;
 transform:translateZ(0);isolation:isolate;
}
.b-assemble-slice{
 flex:0 0 20%;height:100%;min-width:0;
 background-image:url('/assets/images/business-hero.webp');
 background-repeat:no-repeat;background-size:500% 100%;backface-visibility:visible;
 transform-origin:center center;will-change:transform,opacity;
 box-shadow:1px 0 0 #0002;
 opacity:var(--slice-opacity,1);
}
.b-assemble-slice:nth-child(1){background-position:0% 50%}
.b-assemble-slice:nth-child(2){background-position:25% 50%}
.b-assemble-slice:nth-child(3){background-position:50% 50%}
.b-assemble-slice:nth-child(4){background-position:75% 50%}
.b-assemble-slice:nth-child(5){background-position:100% 50%}
.b-assemble-static{
 display:block;position:absolute;inset:0;z-index:5;width:100%;height:100%;object-fit:fill;
 opacity:var(--b-assembled-opacity,0);pointer-events:none;
}
.b-assemble-stamp{
 position:absolute;right:17px;bottom:16px;z-index:7;
 background:#0f1015e8;padding:12px 16px;letter-spacing:.15em;
 font-size:9px;font-weight:700;border:1px solid #bda98488;
}
.b-assemble-footer{
 width:100%;max-width:1270px;margin:auto auto 0;
 display:grid;grid-template-columns:minmax(200px,1fr) minmax(140px,.8fr) 40px auto;
 gap:24px;align-items:center;position:relative;z-index:8;
}
.b-assemble-footer .eyebrow{font-size:9px;color:#bfc3bb}
.b-assemble-meter{background:#ffffff44;height:2px}
.b-assemble-meter span{display:block;height:2px;width:100%;transform:scaleX(var(--b-progress));transform-origin:left;background:var(--ci-gold)}
.b-assemble-percentage{color:var(--ci-gold);font-size:12px}
.b-assemble-footer a{font-size:12px;font-weight:650;border-bottom:1px solid var(--ci-gold);padding-bottom:7px}
.b-assemble-journey.is-assembled .b-assemble-stamp{background:var(--ci-gold);color:#121316}

/* Two actual client-approved wedding highlights with source-native, soundless previews. */
.w-reel-showcase{padding:clamp(100px,11vw,156px) clamp(22px,6vw,96px);background:#f4f2ee;color:#202020}
.w-reels-head{max-width:1400px;margin:0 auto 52px;display:grid;grid-template-columns:1.2fr .8fr;gap:9vw;align-items:end}
.w-reels-head .eyebrow{color:var(--ci-muted-gold)}
.w-reels-head h2{font:450 clamp(48px,6.6vw,102px)/1.06 var(--ci-font);letter-spacing:-.064em;margin:16px 0 0}
.w-reels-head h2 em{font-style:normal;color:var(--ci-muted-gold);font-weight:350}
.w-reels-head>p{max-width:415px;line-height:1.8;font-size:16px;color:#57544f}
.w-reel-grid{max-width:1400px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,44px);margin:0 auto}
.w-reel{min-width:0}
.w-reel-screen{position:relative;aspect-ratio:16/9;background:#161815;overflow:hidden}
.w-reel-screen video{width:100%;height:100%;object-fit:contain;display:block;background:#101315}
.w-reel-screen video::-webkit-media-controls{display:none!important}
.w-reel-screen::after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(0deg,#00000082,transparent 35%);z-index:1}
.w-reel-play{
 position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);
 width:79px;height:79px;border-radius:50%;border:1px solid #c7b188aa;background:#f2eee7de;color:#151515;
 display:grid;place-items:center;font-size:24px;box-shadow:0 12px 30px #0005;
 transition:width .3s,height .3s,transform .3s,top .3s,right .3s,background .3s;
}
.w-reel-play:hover{transform:translate(-50%,-50%) scale(1.1);background:#fff}
.w-reel-screen.is-playing .w-reel-play{
 left:auto;right:16px;top:16px;transform:none;width:44px;height:44px;font-size:17px;opacity:.78;
}
.w-reel-screen.is-playing .w-reel-play:hover{transform:none;opacity:1}
.w-reel-watermark{
 position:absolute;z-index:2;left:20px;bottom:20px;color:#fff;pointer-events:none;
 font-size:10px;letter-spacing:.19em;font-weight:650;
}
.w-reel-caption{padding-top:23px;display:flex;align-items:start;justify-content:space-between;gap:20px}
.w-reel-caption .eyebrow{font-size:9px;color:#84755e}
.w-reel-caption h3{font:500 clamp(27px,3.4vw,48px)/1.18 var(--ci-font);letter-spacing:-.05em;margin:10px 0}
.w-reel-caption p{font-size:14px;line-height:1.7;margin:0;color:#65605a}
.w-reel-length{font-size:10px;color:#877b67;letter-spacing:.08em;text-align:right;white-space:nowrap}
.w-reel-bottom{display:flex;justify-content:space-between;align-items:center;max-width:1400px;gap:20px;margin:45px auto 0;flex-wrap:wrap}
.w-reel-bottom p{max-width:600px;color:#645f57;font-size:13px;line-height:1.7}
.w-film-shot{background:#151719}
.w-film-shot>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.w-film-shot>video{
 position:absolute;inset:0;width:100%;height:100%;
 object-fit:contain;background:#151719;
 opacity:0;transition:opacity .55s ease;
}
.w-film-shot[data-active="true"]>video.is-playing{opacity:1}

/* Film: actual published first-party concert motion replaces static hero.
   The encode has NO AUDIO STREAM. Video is also muted in HTML and JS. */
.f-hero-img{isolation:isolate}
.f-hero-img>video{
 display:block;position:absolute;z-index:2;inset:0;width:100%;height:100%;
 object-fit:cover;object-position:center center;
 filter:brightness(.70) saturate(.87) contrast(1.03);
 pointer-events:none;
}
.f-hero-img>img{z-index:1}
.f-hero-pause{
 position:absolute;right:clamp(22px,6vw,100px);bottom:19px;z-index:9;
 display:flex;align-items:center;gap:12px;background:#101014ad;color:white;
 border:1px solid #ffffff6e;padding:10px 14px;border-radius:100px;
 font-size:11px;font-weight:600;letter-spacing:.025em;backdrop-filter:blur(9px);
}
.f-hero-pause:hover{background:#000e}
@media(max-width:950px){
 .b-assemble-sticky{padding:100px 26px 35px}
 .b-assemble-head h2{font-size:clamp(42px,6vw,69px)}
 .b-assemble-head>p{max-width:600px}
 .b-assemble-stage{width:min(980px,88vw)}
}
@media(max-width:760px){
 .page-fotos .p-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:11px;row-gap:19px}
 .page-fotos .photo-item,.page-fotos .photo-item:nth-child(n){grid-column:span 1;margin:0}
 .page-fotos .photo-item.photo-item-wide{grid-column:span 2}
 .page-fotos .photo-item.photo-item-wide .img-frame>img{max-height:none!important}
 .page-business .b-evidence-card:nth-child(n){padding-top:0!important}
 .page-business .b-evidence-gallery{grid-template-columns:1fr 1fr}
 .page-business .b-evidence-card:first-child{grid-column:1/3}
 .b-assemble-journey{height:185svh;min-height:1050px}
 .b-assemble-sticky{min-height:530px;height:100svh;padding:95px 19px 20px}
 .b-assemble-head{align-items:start;gap:11px;margin:0 auto 15px}
 .b-assemble-head .eyebrow{font-size:9px}
 .b-assemble-head h2{font-size:clamp(36px,9vw,54px);max-width:530px}
 .b-assemble-head>p{max-width:480px;font-size:12px;line-height:1.6}
 .b-assemble-stage{width:100%;aspect-ratio:16/10;flex:0 1 auto;min-height:0;height:auto;max-height:40vh;margin:0 auto 16px}
 .b-assemble-stamp{font-size:8px;bottom:11px;right:10px;padding:8px}
 .b-assemble-footer{display:grid;grid-template-columns:1fr 35px;gap:10px}
 .b-assemble-footer .eyebrow{grid-column:1/3}
 .b-assemble-meter{grid-column:1}
 .b-assemble-percentage{grid-column:2;text-align:right}
 .b-assemble-footer a{grid-column:1/3;margin-top:11px}
 .w-reel-showcase{padding:95px 22px}
 .w-reels-head{grid-template-columns:1fr;gap:12px;margin-bottom:27px}
 .w-reels-head h2{font-size:clamp(47px,10.5vw,70px)}
 .w-reels-head>p{font-size:14px;max-width:600px}
 .w-reel-grid{grid-template-columns:1fr;gap:49px}
 .w-reel-caption{flex-wrap:wrap;gap:7px}
 .w-reel-length{margin-left:auto}
 .w-reel-play{width:62px;height:62px}
 .w-film-shot>video{object-fit:contain}
 .f-hero-img>video{object-fit:cover;object-position:center center}
 .f-hero-pause{right:19px;bottom:15px;padding:8px 11px;font-size:10px}
}
@media(max-width:420px){
 .page-fotos .p-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .page-fotos .photo-item figcaption{font-size:11px}
 .b-assemble-head h2{font-size:37px}
 .b-assemble-stage{max-height:32vh}
 .b-assemble-sticky{padding-top:88px}
}
@media(prefers-reduced-motion:reduce){
 .w-film-shot>video,.f-hero-img>video{display:none!important}
 .w-reel-play{transition:none!important}
 .b-assemble-journey{height:auto;min-height:0}
 .b-assemble-sticky{height:auto;min-height:540px;position:relative}
 .b-assemble-slices{display:none}
 .b-assemble-static{opacity:1}
 .b-assemble-stamp{background:var(--ci-gold);color:#121212}
 .b-assemble-meter span{transform:scaleX(1)!important}
 .b-assemble-percentage{color:var(--ci-gold)}
}
