.scroll-scrub {
  --ss-progress: 0;
  position: relative;
  isolation: isolate;
  color: var(--ss-ink);
  background: var(--ss-bg);
}

.scroll-scrub__stage {
  position: sticky;
  top: 0;
  z-index: 0;
  width: 100%;
  height: 100dvh;
  overflow: hidden;
  background: var(--ss-bg);
}

.scroll-scrub__media,
.scroll-scrub__layer,
.scroll-scrub__picture,
.scroll-scrub__poster,
.scroll-scrub__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.scroll-scrub__media {
  z-index: 0;
}

.scroll-scrub__layer {
  margin: 0;
  overflow: hidden;
  opacity: 0;
  will-change: opacity;
}

.scroll-scrub__layer:first-child {
  opacity: 1;
}

.scroll-scrub__poster,
.scroll-scrub__video {
  display: block;
  object-fit: cover;
  object-position: var(--ss-object-position);
}

.scroll-scrub__poster {
  z-index: 0;
}

.scroll-scrub__video {
  z-index: 1;
}

.scroll-scrub__layer[data-video-painted="true"] .scroll-scrub__poster {
  visibility: hidden;
}

.scroll-scrub__progress {
  position: absolute;
  z-index: 5;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: color-mix(in srgb, var(--ss-ink) 14%, transparent);
  pointer-events: none;
}

.scroll-scrub__progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--ss-accent);
  transform: scaleX(var(--ss-progress));
  transform-origin: left center;
}

.scroll-scrub__route {
  position: absolute;
  z-index: 6;
  top: clamp(1rem, 3vw, 2rem);
  right: clamp(1rem, 4vw, 4rem);
  left: clamp(1rem, 4vw, 4rem);
  display: flex;
  justify-content: flex-end;
  gap: 0.25rem;
  pointer-events: auto;
}

.scroll-scrub__route-button {
  min-height: 2.75rem;
  padding: 0.65rem 0.9rem;
  border: 0;
  color: var(--ss-muted);
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.scroll-scrub__route-button:hover,
.scroll-scrub__route-button[aria-current="step"] {
  color: var(--ss-ink);
}

.scroll-scrub__route-button[aria-current="step"] {
  text-decoration: underline;
  text-decoration-color: var(--ss-accent);
  text-decoration-thickness: 0.15em;
  text-underline-offset: 0.3em;
}

.scroll-scrub__route-button:focus-visible {
  outline: 2px solid var(--ss-accent);
  outline-offset: 3px;
}

.scroll-scrub__story {
  position: relative;
  z-index: 3;
  margin-top: -100dvh;
  pointer-events: none;
}

.scroll-scrub__chapter,
.scroll-scrub__connector-band {
  position: relative;
}

.scroll-scrub__chapter-pin {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  min-height: 100dvh;
  padding: clamp(5rem, 9vw, 8rem) clamp(1.25rem, 6vw, 6rem);
  pointer-events: none;
}

.scroll-scrub__chapter[data-align="right"] .scroll-scrub__chapter-pin {
  justify-content: flex-end;
}

.scroll-scrub__copy {
  position: relative;
  width: min(40rem, 48vw);
  pointer-events: auto;
}

.scroll-scrub__copy::before {
  position: absolute;
  z-index: -1;
  inset: -3rem -5rem;
  content: "";
  background: radial-gradient(
    ellipse at center,
    color-mix(in srgb, var(--ss-bg) 88%, transparent) 0%,
    color-mix(in srgb, var(--ss-bg) 58%, transparent) 52%,
    transparent 76%
  );
  pointer-events: none;
}

.scroll-scrub__kicker {
  max-width: 30ch;
  margin: 0 0 1rem;
  color: var(--ss-accent);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.scroll-scrub__title {
  max-width: 13ch;
  margin: 0;
  color: var(--ss-ink);
  font: inherit;
  font-size: clamp(2.75rem, 6vw, 6.75rem);
  font-weight: 700;
  line-height: 0.94;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.scroll-scrub__body {
  max-width: 42ch;
  margin: 1.5rem 0 0;
  color: var(--ss-muted);
  font-size: clamp(1rem, 1.35vw, 1.2rem);
  line-height: 1.55;
}

.scroll-scrub__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}

.scroll-scrub__tags li {
  padding: 0.45rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--ss-ink) 20%, transparent);
  color: var(--ss-ink);
  font-size: 0.82rem;
}

.scroll-scrub__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}

@media (max-width: 860px) {
  .scroll-scrub__poster,
  .scroll-scrub__video {
    object-position: var(--ss-mobile-position);
  }

  .scroll-scrub__route {
    right: max(0.75rem, env(safe-area-inset-right));
    left: max(0.75rem, env(safe-area-inset-left));
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
  }

  .scroll-scrub__route-button {
    flex: 0 0 auto;
  }

  .scroll-scrub__chapter-pin,
  .scroll-scrub__chapter[data-align="right"] .scroll-scrub__chapter-pin {
    align-items: flex-end;
    justify-content: flex-start;
    padding: 6.5rem max(1.25rem, env(safe-area-inset-right))
      calc(4rem + env(safe-area-inset-bottom))
      max(1.25rem, env(safe-area-inset-left));
  }

  .scroll-scrub__copy {
    width: min(100%, 36rem);
  }

  .scroll-scrub__copy::before {
    inset: -3rem -2rem;
    background: linear-gradient(
      to top,
      var(--ss-bg) 0%,
      color-mix(in srgb, var(--ss-bg) 82%, transparent) 58%,
      transparent 100%
    );
  }

  .scroll-scrub__title {
    max-width: 14ch;
    font-size: clamp(2.3rem, 11vw, 4.5rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-scrub__chapter {
    min-height: 100dvh !important;
  }

  .scroll-scrub__connector-band {
    display: none;
  }

  .scroll-scrub__progress span {
    transition: none;
  }
}


:root{--sami-bg:#101e33;--sami-surface:#172a44;--sami-ink:#f3f6fa;--sami-muted:#d8dee7;--sami-accent:#a6bfda;--sami-line:rgba(216,222,231,.22);color-scheme:dark}
html{scroll-behavior:smooth;scroll-padding-top:92px}body{margin:0;background:var(--sami-bg);color:var(--sami-ink);font-family:'Outfit',Arial,sans-serif;font-size:18px;line-height:1.6}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,video:focus-visible{outline:3px solid var(--sami-accent);outline-offset:6px}img,video{display:block;max-width:100%}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400;line-height:1.06;letter-spacing:-.045em}p{max-width:60ch}h2{font-size:clamp(38px,5.2vw,72px)}h2 span{color:var(--sami-accent)}.section-wrap{padding:105px max(5.5vw,24px);max-width:1540px;margin:auto}.section-wrap:not(.booking){border-bottom:1px solid var(--sami-line)}
.skip-link{position:fixed;top:12px;left:12px;transform:translateY(-200%);z-index:100;background:var(--sami-ink);color:var(--sami-bg);padding:12px}.skip-link:focus{transform:none}.site-header{height:78px;padding:0 5.5vw;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:30;background:rgba(16,30,51,.94);backdrop-filter:blur(18px);border-bottom:1px solid var(--sami-line)}.brand{display:flex;align-items:center;gap:12px;font-size:20px;letter-spacing:-.03em}.brand img{width:42px;height:42px}.site-header nav{display:flex;align-items:center;gap:32px;font-size:15px}.site-header nav>a{position:relative;padding:12px 0}.site-header nav>a:hover{color:var(--sami-accent)}.nav-book{border-bottom:1px solid var(--sami-accent)}.nav-book span{display:inline-block;margin-left:14px;transition:transform .2s}.nav-book:hover span{transform:translate(3px,-3px)}
.sami-hero .scroll-scrub__route{display:none}.sami-hero .scroll-scrub__chapter-pin{padding:70px 5.5vw 90px}.sami-hero .scroll-scrub__copy{width:100%;max-width:1400px;margin:auto}.sami-hero .scroll-scrub__copy::before{background:linear-gradient(90deg,rgba(16,30,51,.85),transparent);inset:-20rem -5.5vw}.sami-hero .scroll-scrub__kicker{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.12em;color:var(--sami-accent);margin-bottom:24px}.sami-hero .scroll-scrub__title{font-family:'Outfit',Arial,sans-serif;font-weight:400;letter-spacing:-.065em;line-height:.98;font-size:clamp(65px,8.7vw,132px);max-width:53%;margin:0 0 28px}.sami-hero .scroll-scrub__body{max-width:39%;font-size:20px;line-height:1.55;color:var(--sami-muted)}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:34px}.hero-book{background:var(--sami-ink);color:var(--sami-bg);padding:15px 24px;min-width:175px;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:17px;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));transition:transform .2s}.hero-book:hover{transform:translateY(-3px)}.hero-book:active{transform:scale(.98)}.hero-watch{display:flex;align-items:center;gap:10px;font-size:16px}.hero-watch span{font-size:23px;transition:transform .2s}.hero-watch:hover span{transform:scale(1.2)}.hero-portrait{position:absolute;right:0;top:50%;transform:translateY(-50%);width:40%;max-width:520px;height:min(70dvh,690px);overflow:hidden;border-radius:180px 180px 6px 6px;background:var(--sami-ink);box-shadow:0 20px 60px rgba(5,14,27,.2)}.hero-portrait img{height:100%;width:100%;object-fit:cover;object-position:50% 20%}.language-band{display:flex;flex-wrap:wrap;align-items:center;gap:2vw;padding:28px 5.5vw;border-top:1px solid var(--sami-line);border-bottom:1px solid var(--sami-line);background:var(--sami-surface)}.language-band>span{font-size:24px}.language-band p{font-size:14px;color:var(--sami-muted);margin-left:auto}
.eyebrow{font:12px 'IBM Plex Mono',monospace;letter-spacing:.16em;color:var(--sami-accent);margin-bottom:18px}.section-heading>p:last-child{margin-top:24px;color:var(--sami-muted);max-width:550px}.performance-grid{margin-top:42px;display:grid;grid-template-columns:1.75fr .65fr;gap:32px;align-items:start}.performance-grid video{width:100%;background:var(--sami-surface)}.party-film video{aspect-ratio:886/434;object-fit:contain}.keyboard-film{margin-top:-110px}.keyboard-film video{aspect-ratio:510/1108;object-fit:contain;max-height:560px}.performance-grid figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:14px;padding-top:14px}.performance-grid figcaption span:last-child{color:var(--sami-accent);font-size:12px}.instagram-link{display:inline-flex;gap:32px;margin-top:36px;padding:12px 0;font-size:16px}.instagram-link span{transition:transform .25s}.instagram-link:hover span{transform:translate(5px,-5px)}
.events{display:grid;grid-template-columns:.85fr 1.35fr;gap:75px}.event-list{border-top:1px solid var(--sami-line)}.event-list details{border-bottom:1px solid var(--sami-line)}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:25px 0;font-size:23px;letter-spacing:-.025em}summary::-webkit-details-marker{display:none}.event-plus{color:var(--sami-accent);font-size:30px;font-weight:300;transition:transform .2s}details[open] .event-plus{transform:rotate(45deg)}.event-content{padding:0 45px 25px 0}.event-content h3{font-size:20px;line-height:1.4;letter-spacing:-.015em;margin-bottom:12px}.event-content p{font-size:16px;color:var(--sami-muted);line-height:1.65}
.about{display:grid;grid-template-columns:1.2fr 1fr;gap:75px;align-items:center}.portrait-pair{display:grid;grid-template-columns:1fr .7fr;align-items:center;gap:18px}.portrait-pair img{width:100%;object-fit:cover}.smiling-portrait{aspect-ratio:3/4}.singing-portrait{aspect-ratio:9/16;margin-top:90px}.about-copy h2{font-size:clamp(35px,4vw,60px);margin-bottom:32px}.about-copy p{margin-top:20px;color:var(--sami-muted);font-size:17px}.about-copy p:last-child{color:var(--sami-accent);font-size:16px}
.review-wall{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;margin-top:35px}.review-wall figure{padding-bottom:34px;border-bottom:1px solid var(--sami-line)}.quote-mark{font-size:100px;line-height:1;color:var(--sami-accent);height:64px;display:block}.review-wall blockquote{margin:10px 0 24px;font-size:clamp(23px,2.1vw,30px);line-height:1.4;letter-spacing:-.02em}.review-wall figcaption{font-size:16px}.review-wall figcaption span{display:block;font-size:12px;color:var(--sami-accent);margin-top:5px}.review-invitation{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:45px}.review-invitation p{font-size:18px}.review-invitation p span{font-size:15px;color:var(--sami-muted)}.review-button{display:flex;gap:24px;align-items:center;background:transparent;color:var(--sami-ink);border:1px solid var(--sami-line);padding:16px 22px;border-radius:50px;font-size:15px;transition:transform .2s,border-color .2s}.review-button:hover{transform:rotate(-2deg);border-color:var(--sami-accent)}
.booking{background-image:linear-gradient(90deg,var(--sami-bg),rgba(16,30,51,.84)),url('/assets/world/scene-01-poster.png');background-size:cover;background-position:center}.booking h2{font-size:clamp(48px,7vw,100px)}.booking>p{margin-top:26px;max-width:500px;color:var(--sami-muted);font-size:18px}.booking-phone{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--sami-accent);padding:30px 0 12px;margin-top:20px;letter-spacing:-.045em;font-size:clamp(33px,6vw,85px);line-height:1.2}.booking-phone>span:last-child{color:var(--sami-accent);transition:transform .3s}.booking-phone:hover>span:last-child{transform:translate(5px,-5px)}.booking .booking-caption{font:12px 'IBM Plex Mono',monospace;margin-top:15px}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;flex-wrap:wrap;padding:30px 5.5vw;border-top:1px solid var(--sami-line);font-size:15px}.site-footer>span{color:var(--sami-accent);font-size:13px}.site-footer>a:first-child{font-size:20px}.review-dialog{position:fixed;inset:0;margin:auto;width:min(560px,calc(100% - 36px));border:1px solid var(--sami-line);padding:55px 40px 38px;background:var(--sami-surface);color:var(--sami-ink);max-height:90dvh}.review-dialog::backdrop{background:rgba(4,13,25,.8);backdrop-filter:blur(8px)}.review-dialog h2{font-size:34px;line-height:1.15;margin-bottom:24px}.review-dialog p{font-size:16px;color:var(--sami-muted)}.dialog-close{position:absolute;top:12px;right:18px;color:var(--sami-ink);border:0;background:none;font-size:32px}.find-google{display:inline-block;background:var(--sami-ink);color:var(--sami-bg);padding:12px 20px;margin:24px 0;font-size:16px}.review-dialog .dialog-note{font-size:13px}.error-page{min-height:100dvh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px;gap:25px}.error-page h1{font-size:45px}.error-page a{text-decoration:underline}
@media(max-width:900px){.site-header nav{gap:18px}.site-header nav>a:not(.nav-book){display:none}.sami-hero .scroll-scrub__title{font-size:73px}.sami-hero .scroll-scrub__body{font-size:18px;max-width:46%}.hero-actions{gap:18px}.hero-book{min-width:145px;padding:13px 17px}.hero-watch{font-size:14px}.hero-portrait{width:40%;height:57dvh}.section-wrap{padding:75px 28px}.events{gap:35px;grid-template-columns:1fr 1.3fr}.about{gap:40px}.language-band{gap:24px}.language-band p{font-size:12px}.performance-grid{gap:22px;grid-template-columns:1.4fr .65fr}.keyboard-film{margin-top:0}}
@media(max-width:600px){body{font-size:16px}.site-header{height:65px;padding:0 22px}.brand span{font-size:18px}.brand img{width:35px;height:35px}.site-header nav{font-size:14px}.sami-hero .scroll-scrub__chapter-pin{padding:36px 24px 40px;align-items:flex-start}.sami-hero .scroll-scrub__copy{width:100%}.sami-hero .scroll-scrub__kicker{margin-bottom:16px;font-size:10px}.sami-hero .scroll-scrub__title{font-size:58px;max-width:100%;margin-bottom:16px}.sami-hero .scroll-scrub__body{max-width:100%;font-size:16px;line-height:1.5}.hero-actions{flex-wrap:wrap;margin-top:22px;gap:15px}.hero-portrait{position:relative;right:auto;top:auto;transform:none;width:100%;height:39dvh;max-height:330px;border-radius:110px 110px 3px 3px;margin-top:12px}.hero-portrait img{object-fit:cover;object-position:50% 18%}.hero-book{min-width:145px}.hero-watch{padding:10px}.language-band{padding:23px 24px;gap:25px;flex-wrap:wrap;justify-content:space-between}.language-band>span{font-size:22px}.language-band p{margin:0;width:100%;font-size:13px}.section-wrap{padding:60px 24px}.performance-grid{grid-template-columns:1fr;gap:28px}.keyboard-film{width:76%;margin:auto}.keyboard-film video{max-height:530px}.section-heading>p:last-child{font-size:16px;margin-top:20px}.events{grid-template-columns:1fr;gap:32px}.event-content{padding-right:20px}summary{font-size:21px}.about{display:flex;flex-direction:column;gap:40px}.portrait-pair{width:100%}.singing-portrait{margin-top:50px}.about-copy h2{font-size:42px}.review-wall{grid-template-columns:1fr;gap:25px}.review-wall blockquote{font-size:23px}.review-invitation{align-items:flex-start;flex-direction:column;gap:25px}.booking h2{font-size:52px}.booking-phone{font-size:34px;padding-top:15px}.booking-phone>span:last-child{font-size:32px}.site-footer{padding:28px 24px;gap:18px}.site-footer>span{width:100%;order:3;font-size:12px}.review-dialog{padding:55px 25px 30px}.review-dialog h2{font-size:30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.sami-hero .scroll-scrub__chapter-pin{padding:75px 5.5vw}.sami-hero .scroll-scrub__copy{min-height:520px;display:flex;flex-direction:column;justify-content:center}.hero-portrait{top:50%}.hero-actions{display:flex}.sami-hero .scroll-scrub__copy::before{background:var(--sami-bg)}}
@media(prefers-reduced-motion:reduce) and (max-width:600px){.sami-hero .scroll-scrub__chapter-pin{padding:35px 24px}.sami-hero .scroll-scrub__copy{min-height:0}.hero-portrait{top:auto}}

/* The same stage and portraits, served as independent static HTML. */
.sami-hero{--ss-bg:var(--sami-bg);--ss-ink:var(--sami-ink);--ss-accent:var(--sami-accent);--ss-muted:var(--sami-muted);--ss-object-position:50% 50%;--ss-mobile-position:50% 50%}
.sami-hero .scroll-scrub__chapter{min-height:155dvh}
.scroll-scrub__video{opacity:0}.scroll-scrub__video[data-ready]{opacity:1}
.sami-hero .scroll-scrub__chapter-pin{min-height:max(760px,100dvh)}
.sami-hero .scroll-scrub__stage{height:max(760px,100dvh)}
.sami-hero .scroll-scrub__story{margin-top:calc(-1 * max(760px,100dvh))}
.hero-portrait{margin:0}
@media(max-width:600px){.sami-hero .scroll-scrub__chapter{min-height:max(950px,155dvh)}.hero-portrait{margin-top:25px}.sami-hero .scroll-scrub__kicker{font-size:12px}.sami-hero .scroll-scrub__title{font-size:clamp(44px,12vw,58px)}}
@media(prefers-reduced-motion:reduce){.sami-hero .scroll-scrub__chapter{min-height:0!important}.sami-hero .scroll-scrub__stage{position:absolute;inset:0;height:100%}.sami-hero .scroll-scrub__story{margin-top:0}.sami-hero .scroll-scrub__chapter-pin{min-height:760px;position:relative}.scroll-scrub__video{display:none}}
