/* Motion chapters below the locked hero. */
.page-v3{
  overflow:clip;
  background:#f4f4f1;
  color:#151617;
}

/* Locked Apple-style glass navigation. */
.nav{
  top:1rem;
  left:var(--pad);
  right:var(--pad);
  padding:.9rem 1.15rem;
}

.nav.on{
  color:#fff;
  mix-blend-mode:normal;
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(18,20,23,.2));
  border:1px solid rgba(255,255,255,.42);
  border-radius:6px;
  box-shadow:
    0 16px 42px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.48),
    inset 0 -1px 0 rgba(255,255,255,.1);
  text-shadow:0 1px 12px rgba(0,0,0,.34);
  -webkit-backdrop-filter:blur(30px) saturate(1.75) brightness(.78);
          backdrop-filter:blur(30px) saturate(1.75) brightness(.78);
}

.nav.on::before{
  content:'';
  position:absolute;
  inset:1px;
  z-index:0;
  pointer-events:none;
  border-radius:5px;
  background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 48%);
}

.nav.on>*{position:relative;z-index:1}
.nav-cta{border-radius:4px}

.script-switch{
  display:grid;
  grid-template-columns:repeat(2,2.75rem);
  gap:2px;
  padding:3px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:4px;
  background:rgba(10,12,14,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
  -webkit-backdrop-filter:blur(16px);
          backdrop-filter:blur(16px);
}

.script-switch button{
  min-width:0;
  height:1.9rem;
  padding:0;
  border:0;
  border-radius:2px;
  color:rgba(255,255,255,.64);
  background:transparent;
  font:600 .6rem/1 var(--f-body);
  letter-spacing:.11em;
  cursor:pointer;
  transition:color .25s ease,background .25s ease,box-shadow .25s ease;
}

.script-switch button[aria-pressed="true"]{
  color:#161719;
  background:rgba(255,255,255,.9);
  box-shadow:0 2px 10px rgba(0,0,0,.16);
}

.script-switch button:focus-visible{outline:2px solid #fff;outline-offset:2px}

html[data-script="cyrl"]{
  --f-body:'Jost',system-ui,sans-serif;
  --f-disp:'Jost',system-ui,sans-serif;
}

html[data-script="cyrl"] .hero-title{
  font-family:'Jost',system-ui,sans-serif;
  font-weight:500;
  line-height:.92;
}

html[data-script="cyrl"] .nav-brand,
html[data-script="cyrl"] .foot-v2-brand{font-family:'Jost',system-ui,sans-serif;font-weight:500}

html[data-script="cyrl"] .service-lead h2,
html[data-script="cyrl"] .artist-statement,
html[data-script="cyrl"] .ritual-copy h2,
html[data-script="cyrl"] .gallery-title h2,
html[data-script="cyrl"] .contact-v2-copy h2{
  line-height:1.05;
}

html[data-script="cyrl"] .service-stage figcaption strong,
html[data-script="cyrl"] .booking-form-head strong{line-height:1.12}

/* Keep the opening statement inside the white wall at every desktop width. */
@media(min-width:761px){
  .hero{height:400vh}
  .hero-lockup{width:min(38vw,61rem)}
  .hero-title{
    width:100%;
    font-size:clamp(3.65rem,8vw,10rem);
    line-height:.88;
  }
  html[data-script="latn"] .hero-title{
    font-size:clamp(4.8rem,11vw,17rem);
    line-height:.84;
  }
  html[data-script="cyrl"] .hero-lockup{width:min(39vw,62rem)}
  html[data-script="cyrl"] .hero-title{
    font-size:clamp(3.45rem,7.35vw,9.2rem);
    line-height:.94;
  }
}

@media(min-width:761px){
  html[data-script="cyrl"] .artist-word{
    top:17%;
    font-size:clamp(6.5rem,11vw,12rem);
    line-height:.9;
  }
  html[data-script="cyrl"] .artist-copy{width:min(32vw,440px)}
  html[data-script="cyrl"] .artist-statement{
    max-width:12ch;
    margin-bottom:1.1rem;
    font-size:clamp(2.35rem,3.4vw,4rem);
    line-height:1.08;
  }
  html[data-script="cyrl"] .artist-copy>p:not(.artist-statement){
    font-size:.95rem;
    line-height:1.5;
  }
  html[data-script="cyrl"] .artist-copy blockquote{
    margin-top:1.2rem;
    padding-top:.8rem;
    padding-bottom:.8rem;
    font-size:clamp(1.3rem,1.45vw,1.6rem);
    line-height:1.16;
  }
  html[data-script="cyrl"] .about-facts{
    gap:1.25rem;
    margin-top:1.2rem;
    padding-top:.9rem;
  }
}

.page-v3 em{
  color:var(--lac);
  font-style:italic;
}

.eyebrow{
  display:block;
  color:var(--lac);
  font-size:.72rem;
  font-weight:600;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:0;
}

/* 01 / Vertical wheel becomes a horizontal service collection. */
.services-v3{
  position:relative;
  min-height:100vh;
  background:#f7f7f5;
}

.services-pin{
  position:relative;
  height:100vh;
  overflow:hidden;
}

.services-track{
  display:flex;
  width:max-content;
  height:100%;
  gap:8vw;
  padding:0 7vw;
  will-change:transform;
}

.services-meter{
  position:absolute;
  right:4vw;
  top:7rem;
  z-index:8;
  display:flex;
  align-items:center;
  gap:.8rem;
  color:rgba(21,22,23,.55);
  font-size:.68rem;
  pointer-events:none;
}

.services-meter i{
  display:block;
  width:5rem;
  height:1px;
  overflow:hidden;
  background:rgba(21,22,23,.2);
}

.services-meter i::after{
  content:'';
  display:block;
  width:100%;
  height:100%;
  background:var(--lac);
  transform:scaleX(var(--service-progress,0));
  transform-origin:left;
}

.service-lead{
  flex:0 0:min(84vw,1120px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(15rem,.34fr);
  grid-template-rows:auto auto 1fr auto;
  column-gap:5vw;
  align-content:center;
  padding:9rem 0 5rem;
}

.service-lead .eyebrow{grid-column:1/-1;margin-bottom:2.4rem}

.service-lead h2{
  grid-column:1;
  max-width:9ch;
  margin:0;
  font-family:var(--f-disp);
  font-size:clamp(5.3rem,8.2vw,9rem);
  font-weight:400;
  line-height:.84;
  letter-spacing:0;
}

.service-lead p{
  grid-column:2;
  align-self:end;
  max-width:32ch;
  margin:0 0 1rem;
  color:rgba(21,22,23,.6);
  font-size:clamp(1.08rem,1.15vw,1.3rem);
  line-height:1.55;
}

.service-direction{
  grid-column:1/-1;
  align-self:end;
  width:max-content;
  padding-bottom:.55rem;
  border-bottom:1px solid currentColor;
  font-size:.68rem;
  text-transform:uppercase;
}

.swipe-demo{display:none}

.service-slide{
  flex:0 0:min(76vw,1040px);
  height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(14rem,.34fr);
  gap:clamp(2rem,4vw,4.5rem);
  align-items:center;
  padding:7.5rem 0 4rem;
}

.service-slide:last-child{margin-right:8vw}

.service-stage.service-card-media{
  position:relative;
  top:auto;
  width:100%;
  height:72vh;
  min-height:0;
  margin:0;
  overflow:hidden;
  background:#c9c7c4;
}

.service-slide-b .service-card-media,
.service-slide-d .service-card-media{height:62vh;transform:translateY(-3vh)}

.service-slide-c .service-card-media{height:78vh}

.service-card-media::after{
  content:'';
  position:absolute;
  inset:auto 0 0;
  height:34%;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.58));
  pointer-events:none;
}

.service-card-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  will-change:transform;
}

/* Locked glass caption, reused on every service scene. */
.service-stage figcaption{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:2;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1.15rem;
  color:#fff;
  background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(20,22,24,.18));
  border:1px solid rgba(255,255,255,.36);
  border-radius:6px;
  box-shadow:inset 0 1px rgba(255,255,255,.34),0 12px 30px rgba(0,0,0,.16);
  -webkit-backdrop-filter:blur(24px) saturate(1.55) brightness(.82);
          backdrop-filter:blur(24px) saturate(1.55) brightness(.82);
}

.service-stage figcaption span{font-size:.72rem}
.service-stage figcaption strong{
  font-family:var(--f-disp);
  font-size:2.1rem;
  font-weight:400;
}

.service-card-copy{
  align-self:end;
  padding-bottom:3vh;
  border-top:1px solid rgba(21,22,23,.2);
}

.service-card-copy span{
  display:block;
  margin:1.2rem 0 2.4rem;
  color:var(--lac);
  font-size:1.12rem;
  font-weight:600;
  text-transform:uppercase;
}

.service-card-copy p{
  max-width:27ch;
  margin:0;
  color:rgba(21,22,23,.66);
  font-size:1.05rem;
  line-height:1.55;
}

/* 02 / Portrait grows through the oversized name. */
.artist-v3{
  position:relative;
  height:205vh;
  background:#e7e7e3;
}

.artist-pin{
  position:sticky;
  top:0;
  height:100vh;
  overflow:hidden;
}

.artist-kicker{
  position:absolute;
  top:7rem;
  left:var(--pad);
  z-index:5;
}

.artist-word{
  position:absolute;
  left:50%;
  top:24%;
  z-index:1;
  margin:0;
  font-family:var(--f-disp);
  font-size:clamp(8rem,15.3vw,17rem);
  font-weight:400;
  line-height:.78;
  letter-spacing:0;
  text-transform:uppercase;
  white-space:nowrap;
  transform:translate(-50%,-50%);
  will-change:transform;
}

.artist-portrait{
  position:absolute;
  left:60%;
  top:52%;
  z-index:2;
  width:min(42vw,620px);
  height:86vh;
  margin:0;
  overflow:visible;
  transform:translate(-50%,-50%);
  transform-origin:center;
  will-change:transform;
}

.artist-portrait img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  will-change:transform;
}

.artist-portrait figcaption{
  position:absolute;
  right:-5rem;
  bottom:10rem;
  width:13rem;
  padding:.75rem 0 0;
  border-top:1px solid rgba(21,22,23,.3);
  color:rgba(21,22,23,.66);
  background:transparent;
  font-size:.72rem;
  font-weight:500;
  line-height:1.25;
  text-align:right;
  text-transform:uppercase;
  white-space:nowrap;
}

.artist-copy{
  position:absolute;
  left:var(--pad);
  bottom:5.5vh;
  z-index:3;
  width:min(34vw,470px);
  will-change:transform,opacity;
}

.artist-statement{
  max-width:9ch;
  margin:0 0 1.5rem;
  font-family:var(--f-disp);
  font-size:clamp(2.7rem,4.4vw,5rem);
  line-height:.92;
}

.artist-copy>p:not(.artist-statement){
  max-width:38ch;
  color:rgba(21,22,23,.62);
}

.artist-copy blockquote{
  max-width:28ch;
  margin:1.8rem 0 0;
  padding:1.1rem 0 1.1rem 1.3rem;
  border-left:2px solid var(--lac);
  font-family:var(--f-disp);
  font-size:clamp(1.5rem,1.8vw,1.9rem);
  line-height:1.12;
}

.about-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2rem;
  margin-top:2rem;
  padding-top:1.3rem;
  border-top:1px solid rgba(21,22,23,.2);
}

.about-facts b{
  display:block;
  font-family:var(--f-disp);
  font-size:2.7rem;
  font-weight:400;
  line-height:1;
}

.about-facts span{
  display:block;
  max-width:12ch;
  margin-top:.5rem;
  color:rgba(21,22,23,.5);
  font-size:.65rem;
  line-height:1.3;
  text-transform:uppercase;
}

/* 03 / Three panels wipe over one another. */
.ritual-v3{
  position:relative;
  min-height:100vh;
  background:#111214;
  color:#f7f7f5;
}

.ritual-pin{
  position:relative;
  height:100vh;
  overflow:hidden;
}

.ritual-scene{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:minmax(18rem,.42fr) minmax(0,.58fr);
  align-items:center;
  overflow:hidden;
  will-change:clip-path;
}

.ritual-scene-one{z-index:1;background:#111214}
.ritual-scene-two{
  z-index:2;
  grid-template-columns:minmax(0,.58fr) minmax(18rem,.42fr);
  background:#f2f2ef;
  color:#151617;
  clip-path:inset(100% 0 0);
}
.ritual-scene-three{
  z-index:3;
  background:#151617;
  clip-path:inset(0 100% 0 0);
}

.ritual-scene figure{
  position:absolute;
  top:0;
  bottom:0;
  width:58%;
  margin:0;
  overflow:hidden;
}

.ritual-scene-one figure,
.ritual-scene-three figure{right:0}
.ritual-scene-two figure{left:0}

.ritual-scene figure::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(10,11,12,.35),transparent 45%);
  pointer-events:none;
}

.ritual-scene img{
  width:100%;
  height:100%;
  object-fit:cover;
  will-change:transform;
}

.ritual-copy{
  position:relative;
  z-index:3;
  width:min(36vw,510px);
  margin-left:var(--pad);
}

.ritual-scene-two .ritual-copy{
  grid-column:2;
  margin-left:5vw;
}

.ritual-copy>span{
  display:block;
  margin-bottom:2.2rem;
  color:var(--lac);
  font-size:.7rem;
  text-transform:uppercase;
}

.ritual-copy h2{
  max-width:8ch;
  margin:0 0 2rem;
  font-family:var(--f-disp);
  font-size:clamp(4rem,7vw,7.5rem);
  font-weight:400;
  line-height:.86;
  letter-spacing:0;
}

.ritual-copy p{
  max-width:32ch;
  margin:0;
  color:rgba(255,255,255,.62);
}

.ritual-scene-two .ritual-copy p{color:rgba(21,22,23,.62)}

.ritual-scene>b{
  position:absolute;
  right:2vw;
  bottom:-.16em;
  z-index:2;
  color:rgba(255,255,255,.14);
  font-family:var(--f-disp);
  font-size:28vw;
  font-weight:400;
  line-height:.75;
}

.ritual-scene-two>b{left:1vw;right:auto;color:rgba(21,22,23,.09)}

/* 04 / Images arrive at different depths, then the studio fills the viewport. */
.gallery-v3{
  position:relative;
  min-height:100vh;
  background:#f4f4f1;
}

.gallery-pin{
  position:relative;
  height:100vh;
  overflow:hidden;
}

.gallery-title{
  position:absolute;
  left:50%;
  top:44%;
  z-index:5;
  width:min(74vw,980px);
  text-align:center;
  transform:translate(-50%,-50%);
  will-change:transform,opacity;
}

.gallery-title h2{
  max-width:10ch;
  margin:1.1rem auto 0;
  font-family:var(--f-disp);
  font-size:clamp(5rem,9vw,9.5rem);
  font-weight:400;
  line-height:.83;
  letter-spacing:0;
}

.gallery-layer,
.gallery-focus{
  position:absolute;
  margin:0;
  overflow:hidden;
  background:#ccc;
  will-change:transform,opacity;
}

.gallery-zoom-layer{display:contents}

.gallery-layer img,
.gallery-focus img{
  width:100%;
  height:100%;
  object-fit:cover;
  will-change:transform;
}

.gallery-layer-one{left:3vw;bottom:4vh;width:29vw;height:37vh;z-index:3}
.gallery-layer-two{right:-2vw;top:10vh;width:25vw;height:48vh;z-index:2}
.gallery-layer-three{left:20vw;top:-8vh;width:18vw;height:30vh;z-index:2}
.gallery-layer-four{right:20vw;bottom:-10vh;width:19vw;height:34vh;z-index:3}

.gallery-focus{
  inset:0;
  z-index:4;
  opacity:0;
  transform:scale(.24);
}

.gallery-note{
  position:absolute;
  right:var(--pad);
  bottom:2rem;
  z-index:6;
  max-width:21ch;
  margin:0;
  color:#fff;
  font-size:.7rem;
  text-align:right;
  opacity:0;
}

/* Contact and booking chapter. The locked hero and navigation remain unchanged. */
.contact-v2{
  position:relative;
  min-height:108vh;
  display:grid;
  grid-template-columns:minmax(0,.78fr) minmax(32rem,1.1fr);
  gap:clamp(3rem,6vw,7rem);
  align-items:center;
  padding:9rem var(--pad) 6rem;
  overflow:hidden;
  color:#fff;
}

.page-v3 .contact-v2{
  z-index:5;
  background:#17191b;
  will-change:clip-path;
}

.contact-v2-image,
.contact-v2-shade{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.contact-v2-image{object-fit:cover;object-position:center}
.contact-v2-shade{background:linear-gradient(90deg,rgba(10,11,12,.76),rgba(10,11,12,.36) 52%,rgba(10,11,12,.54))}

.contact-v2::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  z-index:1;
  width:min(47%,760px);
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(18,20,23,.2));
  border-right:1px solid rgba(255,255,255,.42);
  box-shadow:
    inset -1px 0 rgba(0,0,0,.1),
    inset 1px 0 rgba(255,255,255,.28),
    18px 0 50px rgba(0,0,0,.1);
  -webkit-backdrop-filter:blur(30px) saturate(1.45) brightness(.72);
          backdrop-filter:blur(30px) saturate(1.45) brightness(.72);
}

.contact-v2-copy{
  position:relative;
  z-index:2;
  max-width:590px;
}

.contact-v2-copy h2{
  max-width:7ch;
  margin:1.2rem 0 1.8rem;
  font-family:var(--f-disp);
  font-size:clamp(4.6rem,6.2vw,7rem);
  line-height:.9;
  letter-spacing:0;
}

.contact-v2-copy p{
  max-width:38ch;
  color:rgba(255,255,255,.76);
  font-size:1.05rem;
  line-height:1.65;
}

.contact-channels{
  display:grid;
  gap:1.35rem;
  margin-top:2.2rem;
}

.instagram-mark{
  display:inline-flex;
  align-items:center;
  gap:1rem;
  width:max-content;
  color:#fff;
}

.instagram-mark svg{
  width:3.5rem;
  height:3.5rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.18));
  animation:instagram-float 3.6s ease-in-out infinite;
  transition:color .3s ease,transform .3s ease;
}

.instagram-mark span{
  font-size:.82rem;
  font-weight:500;
}

.instagram-mark:hover{color:#ee5b62}
.instagram-mark:hover svg{animation-play-state:paused;transform:scale(1.08) rotate(-5deg)}

.contact-details{
  display:grid;
  gap:.75rem;
  width:max-content;
}

.contact-details a{
  display:flex;
  align-items:center;
  gap:.8rem;
  width:max-content;
  color:rgba(255,255,255,.72);
  font-size:.73rem;
  font-weight:500;
  text-transform:uppercase;
  transition:color .25s ease,transform .25s ease;
}

.contact-details svg{
  width:1.15rem;
  height:1.15rem;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.contact-details a:first-child svg{animation:contact-phone 4.8s ease-in-out infinite}
.contact-details a:last-child svg{animation:contact-mail 4.8s 1.2s ease-in-out infinite}
.contact-details a:hover{color:#fff;transform:translateX(.25rem)}

@keyframes instagram-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-.35rem)}
}

@keyframes contact-phone{
  0%,78%,100%{transform:rotate(0)}
  82%{transform:rotate(10deg)}
  86%{transform:rotate(-8deg)}
  90%{transform:rotate(6deg)}
}

@keyframes contact-mail{
  0%,74%,100%{transform:translateX(0)}
  82%{transform:translateX(.25rem)}
  90%{transform:translateX(0)}
}

.booking-form{
  position:relative;
  z-index:3;
  justify-self:end;
  width:min(100%,760px);
  padding:clamp(1.5rem,3vw,2.6rem);
  background:linear-gradient(135deg,rgba(20,21,22,.7),rgba(50,43,39,.48));
  border:1px solid rgba(255,255,255,.42);
  border-radius:6px;
  box-shadow:0 26px 70px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.22);
  -webkit-backdrop-filter:blur(28px) saturate(1.35);
          backdrop-filter:blur(28px) saturate(1.35);
}

.booking-form-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  padding-bottom:1.4rem;
  border-bottom:1px solid rgba(255,255,255,.22);
}

.booking-form-head span{color:#d2494f;font-size:.7rem;font-weight:600;text-transform:uppercase}
.booking-form-head>div{display:grid;justify-items:end;gap:.45rem}
.booking-form-head strong{font-family:var(--f-disp);font-size:2.1rem;font-weight:400;line-height:1}
.booking-form-head small{color:rgba(255,255,255,.44);font-size:.58rem;text-transform:uppercase}
.booking-form-head small b,
.booking-field>span b,
.booking-time legend b{color:#ff7378;font-weight:600}

.booking-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.2rem 1.5rem;
  margin-top:1.5rem;
}

.booking-field{display:grid;gap:.55rem;min-width:0}
.booking-field-wide{grid-column:1/-1}
.booking-field>span,
.booking-time legend{
  color:rgba(255,255,255,.66);
  font-size:.66rem;
  font-weight:500;
  text-transform:uppercase;
}
.booking-field small{font-size:.58rem;color:rgba(255,255,255,.4)}

.booking-field input,
.booking-field select,
.booking-field textarea{
  width:100%;
  min-height:2.9rem;
  padding:.65rem 0;
  color:#fff;
  background:transparent;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.32);
  border-radius:0;
  font:inherit;
  font-size:.92rem;
  letter-spacing:0;
  outline:none;
  transition:border-color .25s ease;
}

.booking-field textarea{min-height:3.4rem;resize:vertical}
.booking-field select{color-scheme:dark}
.booking-field input::placeholder,
.booking-field textarea::placeholder{color:rgba(255,255,255,.38)}
.booking-field input:focus,
.booking-field select:focus,
.booking-field textarea:focus{border-color:#fff}
.booking-field input[aria-invalid="true"],
.booking-field select[aria-invalid="true"]{border-color:#e15a60}

.booking-time{grid-column:1/-1;margin:0;padding:0;border:0}
.booking-time legend{margin-bottom:.75rem}
.booking-time-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.45rem}
.booking-time label{position:relative;min-width:0}
.booking-time input{position:absolute;opacity:0;pointer-events:none}
.booking-time label span{
  display:flex;
  min-height:2.45rem;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.25);
  border-radius:4px;
  color:rgba(255,255,255,.72);
  font-size:.76rem;
  cursor:pointer;
  transition:background .25s ease,border-color .25s ease,color .25s ease;
}
.booking-time label span:hover{border-color:rgba(255,255,255,.7);color:#fff}
.booking-time input:checked+span{background:#fff;border-color:#fff;color:#17191b}
.booking-time input:focus-visible+span{outline:2px solid #fff;outline-offset:2px}

.booking-consent{
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  margin-top:1.25rem;
  color:rgba(255,255,255,.56);
  font-size:.67rem;
  line-height:1.45;
  cursor:pointer;
}
.booking-consent input{width:1rem;height:1rem;margin:.05rem 0 0;accent-color:#d2494f}
.booking-consent b{color:#ff7378;font-weight:600}

.booking-error{min-height:1rem;margin:.65rem 0 0;color:#ff8b90;font-size:.68rem}
.booking-submit{
  width:100%;
  min-height:3.4rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.85rem 1rem;
  color:#17191b;
  background:#fff;
  border:1px solid #fff;
  border-radius:4px;
  font:inherit;
  font-size:.72rem;
  font-weight:600;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .25s ease,color .25s ease;
}
.booking-submit:hover{background:#d2494f;border-color:#d2494f;color:#fff}
.booking-submit svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.booking-result{
  margin-top:1rem;
  padding:1rem;
  background:rgba(255,255,255,.09);
  border-left:2px solid #d2494f;
}
.booking-result strong{font-family:var(--f-disp);font-size:1.35rem;font-weight:400}
.booking-result p{margin:.3rem 0 .8rem;color:rgba(255,255,255,.66);font-size:.72rem}
.booking-result button{padding:0;color:#fff;background:none;border:0;border-bottom:1px solid currentColor;font:inherit;font-size:.67rem;text-transform:uppercase;cursor:pointer}

.foot-v2{
  display:grid;
  grid-template-columns:1fr auto;
  gap:3rem;
  align-items:end;
  padding:4rem var(--pad) 2rem;
  background:#17191b;
  color:rgba(255,255,255,.58);
  font-size:.72rem;
  text-transform:uppercase;
}

.foot-v2-brand{
  color:#fff;
  font-family:var(--f-disp);
  font-size:3.2rem;
  line-height:1;
  text-transform:none;
}

.foot-v2-meta{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.45rem;
}

.foot-v2-meta a{
  color:#fff;
  transition:color .25s ease;
}

.foot-v2-meta a:hover{color:#d2494f}

.is-reveal{opacity:0;transform:translateY(2.2rem)}

@media(max-width:980px){
  .nav{gap:1rem}
  .nav-links{display:none}
  .service-lead{flex-basis:88vw;grid-template-columns:1fr minmax(13rem,.38fr)}
  .service-lead h2{font-size:5.8rem}
  .service-slide{flex-basis:84vw;grid-template-columns:minmax(0,1fr) 14rem;gap:2.5rem}
  .service-stage.service-card-media{height:68vh}
  .artist-word{font-size:14.5vw}
  .artist-portrait{left:62%;width:46vw}
  .artist-portrait figcaption{right:-3rem}
  .artist-copy{width:39vw}
  .artist-statement{font-size:3.25rem}
  .ritual-copy{width:39vw}
  .ritual-copy h2{font-size:5rem}
  .contact-v2{grid-template-columns:minmax(0,.7fr) minmax(29rem,1fr);gap:2.5rem}
  .contact-v2-copy h2{font-size:5.2rem}
  .booking-time-options{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:760px){
  .nav{top:.65rem;left:.75rem;right:.75rem;gap:.5rem;padding:.72rem .85rem}
  .nav-brand{font-size:1.22rem}
  .nav-cta{min-height:2.6rem;display:flex;align-items:center;font-size:.66rem;padding:.58rem .72rem}
  .script-switch{grid-template-columns:repeat(2,2.15rem)}
  .script-switch button{height:1.85rem;font-size:.56rem}
  .eyebrow{font-size:.76rem}

  .hero-stage{height:100svh}
  .hero-type{inset:0;padding:0}
  .hero-lockup{
    position:absolute;
    left:50vw;
    bottom:5.75rem;
    width:calc(100svh - 8.5rem);
    transform:rotate(-90deg);
    transform-origin:left bottom;
  }
  .hero-kicker{margin-bottom:.65rem;font-size:.66rem;letter-spacing:.2em}
  .hero{height:430svh}
  .hero-title{
    width:auto;
    max-width:none;
    font-size:clamp(2.7rem,13vw,3.45rem);
    line-height:.98;
  }
  html[data-script="cyrl"] .hero-lockup{width:calc(100svh - 8.5rem)}
  html[data-script="cyrl"] .hero-title{
    font-size:clamp(2.45rem,11.5vw,3.1rem);
    line-height:1;
  }
  .hero-cue{
    right:auto;
    left:25vw;
    bottom:clamp(22rem,50svh,44rem);
    transform:translateX(-50%);
    align-items:center;
    gap:.4rem;
    padding:0;
    color:var(--lac);
    background:transparent;
    border:0;
    border-radius:0;
    -webkit-backdrop-filter:none;
            backdrop-filter:none;
    box-shadow:none;
    font-size:.66rem;
    font-weight:600;
    letter-spacing:.12em;
  }
  .hero-cue-desktop{display:none}
  .hero-cue-mobile{display:block;order:2;white-space:nowrap}
  .hero-cue::after{display:none}
  .hero-cue>i{display:none}
  .hero-scroll-arrow{
    display:block;
    order:1;
    width:3rem;
    height:3rem;
    color:var(--lac);
    filter:drop-shadow(0 .4rem .55rem rgba(199,22,42,.24));
    animation:heroArrowScroll 1.65s ease-in-out infinite;
  }
  .hero-scroll-arrow::before{
    content:'';
    position:absolute;
    left:50%;
    top:50%;
    width:2.7rem;
    height:2.7rem;
    border:1px solid rgba(199,22,42,.5);
    border-radius:50%;
    transform:translate(-50%,-50%) scale(.25);
    opacity:0;
    animation:heroArrowPulse 1.65s ease-out infinite;
  }
  .hero-scroll-arrow svg{display:block;width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

  .services-v3{overflow:hidden}
  .services-pin{height:auto;min-height:100svh;overflow:visible}
  .services-meter{
    position:sticky;
    left:auto;
    right:auto;
    top:6.15rem;
    bottom:auto;
    width:9.5rem;
    margin:0 1.25rem -3.2rem auto;
    display:flex;
    padding:.65rem .75rem;
    color:rgba(21,22,23,.68);
    background:rgba(255,255,255,.68);
    border:1px solid rgba(21,22,23,.14);
    border-radius:5px;
    -webkit-backdrop-filter:blur(18px) saturate(1.35);
            backdrop-filter:blur(18px) saturate(1.35);
  }
  .services-meter i{width:auto;flex:1}
  .services-meter::after{
    content:'\2190';
    margin-left:.35rem;
    color:var(--ink);
    font-size:1.15rem;
    font-weight:600;
    animation:serviceSwipeCue 1.6s ease-in-out infinite;
  }
  .services-track{
    display:flex;
    width:100%;
    height:auto;
    gap:1rem;
    padding:0 1.25rem 5.5rem;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-left:1.25rem;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    will-change:auto;
  }
  .services-track::-webkit-scrollbar{display:none}
  .service-lead{
    flex:0 0 calc(100vw - 2.5rem);
    display:flex;
    flex-direction:column;
    min-height:88svh;
    padding:7.5rem 0 4rem;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .service-lead .eyebrow{margin-bottom:2rem}
  .service-lead h2{font-size:3.65rem;line-height:1.02}
  html[data-script="cyrl"] .service-lead h2{max-width:10ch;font-size:3.25rem;line-height:1.06}
  .service-lead p{max-width:30ch;margin:2rem 0 2.5rem;font-size:1.08rem;line-height:1.6}
  .swipe-demo{
    display:grid;
    grid-template-columns:auto minmax(7.5rem,10rem);
    align-items:center;
    gap:1rem;
    margin-top:auto;
    padding:.85rem 0;
    transition:opacity .45s ease,transform .45s ease;
  }
  .swipe-demo-label{
    font-size:.76rem;
    font-weight:600;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .swipe-demo-track{
    position:relative;
    display:block;
    height:4.25rem;
  }
  .swipe-demo-line{
    position:absolute;
    left:.45rem;
    right:.45rem;
    top:50%;
    height:1px;
    background:linear-gradient(90deg,var(--lac),rgba(199,22,42,.12));
  }
  .swipe-demo-line::before{
    content:'';
    position:absolute;
    left:-.05rem;
    top:-.28rem;
    width:.5rem;
    height:.5rem;
    border-left:1.5px solid var(--lac);
    border-bottom:1.5px solid var(--lac);
    transform:rotate(45deg);
  }
  .swipe-finger{
    position:absolute;
    right:.2rem;
    top:-.15rem;
    width:2.8rem;
    height:3.35rem;
    color:var(--lac);
    filter:drop-shadow(0 .45rem .6rem rgba(199,22,42,.22));
    transform-origin:50% 90%;
    animation:serviceFingerSwipe 2.35s cubic-bezier(.55,.05,.3,1) infinite;
  }
  .swipe-finger::before{
    content:'';
    position:absolute;
    left:50%;
    top:42%;
    width:2.2rem;
    height:2.2rem;
    border:1px solid rgba(199,22,42,.45);
    border-radius:50%;
    transform:translate(-50%,-50%) scale(.25);
    opacity:0;
    animation:serviceTouchPulse 2.35s ease-out infinite;
  }
  .swipe-finger svg{display:block;width:100%;height:100%;overflow:visible;fill:currentColor}
  .swipe-finger-nail{fill:rgba(255,255,255,.64)}
  .services-v3.has-swiped .swipe-demo{
    opacity:0;
    transform:translateY(.5rem);
    pointer-events:none;
  }
  .service-slide{
    flex:0 0 calc(100vw - 2.5rem);
    display:flex;
    flex-direction:column;
    height:auto;
    min-height:88svh;
    padding:6.5rem 0 5.5rem;
    margin:0;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }
  .service-slide:last-child{margin-right:0}
  .service-stage.service-card-media,
  .service-slide-b .service-card-media,
  .service-slide-c .service-card-media,
  .service-slide-d .service-card-media{
    height:58svh;
    min-height:390px;
    transform:none;
  }
  .service-card-copy{margin-top:1.5rem;padding-bottom:0}
  .service-card-copy span{margin-bottom:1rem;font-size:1.08rem}
  .service-card-copy p{max-width:none;font-size:1.04rem;line-height:1.62}

  .artist-v3{height:auto}
  .artist-pin{
    position:relative;
    height:auto;
    display:flex;
    flex-direction:column;
    padding:7rem var(--pad) 5rem;
    overflow:hidden;
  }
  .artist-kicker{position:relative;top:auto;left:auto;order:1}
  .artist-word{
    position:relative;
    left:auto;
    top:auto;
    order:2;
    margin:2rem 0 -1rem;
    font-size:18vw;
    transform:none;
  }
  .artist-portrait{
    position:relative;
    left:auto;
    top:auto;
    order:3;
    width:100%;
    height:70vh;
    min-height:500px;
    transform:none;
  }
  .artist-portrait figcaption{
    right:0;
    bottom:4rem;
    width:13.5rem;
    font-size:.76rem;
  }
  .artist-copy{
    position:relative;
    left:auto;
    bottom:auto;
    order:4;
    width:100%;
    margin-top:3rem;
  }
  .artist-statement{font-size:3.1rem;line-height:1.04}
  .artist-copy>p:not(.artist-statement){font-size:1.02rem;line-height:1.65}
  .artist-copy blockquote{font-size:1.5rem;line-height:1.16}
  .about-facts span{font-size:.72rem}

  .ritual-v3,.ritual-pin{height:auto}
  .ritual-pin{overflow:visible}
  .ritual-scene,
  .ritual-scene-two,
  .ritual-scene-three{
    position:relative;
    inset:auto;
    display:flex;
    flex-direction:column;
    min-height:100svh;
    clip-path:none;
  }
  .ritual-scene figure,
  .ritual-scene-one figure,
  .ritual-scene-two figure,
  .ritual-scene-three figure{
    position:relative;
    inset:auto;
    order:2;
    width:100%;
    height:58vh;
    min-height:430px;
  }
  .ritual-copy,
  .ritual-scene-two .ritual-copy{
    order:1;
    width:auto;
    margin:0;
    padding:7rem var(--pad) 3rem;
  }
  .ritual-copy>span{font-size:.75rem}
  .ritual-copy h2{font-size:3.8rem;line-height:1}
  .ritual-copy p{font-size:1.02rem;line-height:1.62}
  .ritual-scene>b{font-size:52vw}

  .gallery-v3{
    height:300svh;
    min-height:0;
  }
  .gallery-pin{
    position:sticky;
    top:0;
    display:block;
    width:100%;
    height:100svh;
    padding:0;
    overflow:hidden;
    isolation:isolate;
  }
  .gallery-title{
    position:absolute;
    left:var(--pad);
    right:var(--pad);
    top:7rem;
    z-index:12;
    width:auto;
    margin:0;
    text-align:left;
    transform:none;
    pointer-events:none;
  }
  .gallery-title h2{max-width:7ch;margin:1rem 0 0;font-size:3.65rem}
  .gallery-zoom-layer{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    will-change:transform;
    transform-origin:center center;
  }
  .gallery-zoom-one{z-index:2}
  .gallery-zoom-two{z-index:3}
  .gallery-zoom-three{z-index:4}
  .gallery-zoom-four{z-index:5}
  .gallery-zoom-five{z-index:6}
  .gallery-layer,
  .gallery-focus{
    position:relative;
    inset:auto;
    margin:0;
    opacity:1;
    transform:none;
  }
  .gallery-layer-one{top:2svh;width:67vw;height:32svh}
  .gallery-layer-two{left:-26vw;top:-24svh;width:38vw;height:24svh}
  .gallery-layer-three{left:27vw;top:-18svh;width:35vw;height:29svh}
  .gallery-layer-four{left:-25vw;top:27svh;width:42vw;height:25svh}
  .gallery-focus{left:26vw;top:26svh;width:35vw;height:22svh}
  .gallery-layer-four img{object-position:center 36%}
  .gallery-note{
    position:absolute;
    right:var(--pad);
    bottom:2.5rem;
    z-index:12;
    max-width:20ch;
    margin:0;
    color:rgba(255,255,255,.9);
    font-size:.82rem;
    line-height:1.5;
    text-align:right;
    text-shadow:0 1px 14px rgba(0,0,0,.4);
    opacity:0;
    pointer-events:none;
  }

  .contact-v2{
    min-height:auto;
    grid-template-columns:1fr;
    gap:3.5rem;
    padding-top:7rem;
    padding-bottom:4rem;
  }
  .contact-v2::before{
    width:100%;
    background:linear-gradient(135deg,rgba(18,20,23,.62),rgba(18,20,23,.32));
    border-right:0;
  }
  .contact-v2-image{object-position:58% center}
  .contact-v2-copy{max-width:34rem}
  .contact-v2-copy h2{font-size:4.3rem;line-height:1}
  .contact-v2-copy p{font-size:1.02rem}
  .contact-details a{font-size:.8rem}
  .booking-form{justify-self:stretch;width:100%;padding:1.35rem}
  .booking-fields{grid-template-columns:1fr}
  .booking-field-wide,.booking-time{grid-column:1}
  .booking-time-options{grid-template-columns:repeat(3,minmax(0,1fr))}
  .booking-field>span,.booking-time legend{font-size:.72rem}
  .booking-field input,.booking-field select,.booking-field textarea{font-size:1rem}
  .booking-time label span{min-height:2.75rem;font-size:.88rem}
  .booking-consent{font-size:.75rem;line-height:1.5}
  .booking-consent input{width:1.15rem;height:1.15rem;flex:0 0 auto}
  .booking-error{font-size:.78rem}
  .booking-form-head small{font-size:.66rem}
  .booking-form-head strong{font-size:1.8rem}
  .booking-field,.booking-time{scroll-margin-top:6rem}
  .foot-v2{grid-template-columns:1fr auto;gap:1.5rem;font-size:.78rem}
  .foot-v2-brand{grid-column:1/-1;font-size:2.8rem}
  .foot-v2-meta{grid-column:1/-1;align-items:flex-start}
}

@keyframes serviceSwipeCue{
  0%,100%{transform:translateX(.25rem)}
  50%{transform:translateX(-.25rem)}
}

@keyframes serviceFingerSwipe{
  0%,16%{transform:translateX(0) rotate(-8deg);opacity:0}
  22%{opacity:1}
  32%{transform:translateX(0) rotate(-8deg);opacity:1}
  68%{transform:translateX(-6.5rem) rotate(-13deg);opacity:1}
  78%,100%{transform:translateX(-6.5rem) rotate(-13deg);opacity:0}
}

@keyframes serviceTouchPulse{
  0%,24%{opacity:0;transform:translate(-50%,-50%) scale(.25)}
  32%{opacity:.72;transform:translate(-50%,-50%) scale(.45)}
  52%{opacity:0;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0}
}

@keyframes heroArrowScroll{
  0%,100%{transform:translateY(.55rem);opacity:.25}
  45%{transform:translateY(-.65rem);opacity:1}
  70%{transform:translateY(-.65rem);opacity:1}
}

@keyframes heroArrowPulse{
  0%,22%{opacity:0;transform:translate(-50%,-50%) scale(.35)}
  42%{opacity:.65;transform:translate(-50%,-50%) scale(.55)}
  72%{opacity:0;transform:translate(-50%,-50%) scale(1.15)}
  100%{opacity:0}
}

@media(prefers-reduced-motion:reduce){
  .services-meter::after,
  .hero-scroll-arrow,
  .hero-scroll-arrow::before,
  .swipe-finger,
  .swipe-finger::before,
  .instagram-mark svg,
  .contact-details svg{animation:none!important}
  .is-reveal{opacity:1;transform:none}
  .services-track,
  .service-card-media img,
  .artist-word,
  .artist-portrait,
  .artist-copy,
  .ritual-scene,
  .ritual-scene img,
  .gallery-title,
  .gallery-layer,
  .gallery-focus,
  .contact-v2{transform:none!important;clip-path:none!important}
}

@media(max-width:760px) and (prefers-reduced-motion:reduce){
  .gallery-v3{height:auto}
  .gallery-pin{
    position:relative;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem;
    height:auto;
    padding:7rem var(--pad) 5rem;
  }
  .gallery-title{position:relative;left:auto;right:auto;top:auto;grid-column:1/-1;margin-bottom:3rem}
  .gallery-zoom-layer{display:contents}
  .gallery-layer,.gallery-focus{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:3/4}
  .gallery-layer-one,.gallery-layer-four,.gallery-focus{grid-column:1/-1;aspect-ratio:16/10}
  .gallery-note{position:relative;right:auto;bottom:auto;grid-column:1/-1;color:rgba(21,22,23,.58);text-align:left;opacity:1}
}

/* Bez plavog pravougaonika pri dodiru dugmeta ili linka na telefonu. */
*{-webkit-tap-highlight-color:transparent}
a,button,summary,[role="button"]{touch-action:manipulation}
