:root {
  --ink: #0b0b0a;
  --paper: #f0eee8;
  --line: rgba(240, 238, 232, 0.18);
  --muted: #a7a39a;
  --accent: #e35c32;
  --pad: clamp(20px, 4vw, 64px);
  --header-h: 76px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html {
  scroll-behavior: auto;
  scroll-padding-top:calc(var(--header-h) + 18px);
  background: var(--ink);
}
:where(#work,#reels,#languages,#clients,#stills,#process,#about,#contact,
  .portfolio-hero,.portfolio-panel,.portfolio-footer) {
  scroll-margin-top:calc(var(--header-h) + 18px);
}
body {
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.dialog-open { overflow: hidden; }
img, video, iframe { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 100;
  width: 100%;
  height: 3px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
}

.skip-link {
  position: fixed;
  left: 16px;
  top: -80px;
  z-index: 100;
  padding: 12px 16px;
  background: var(--paper);
  color: var(--ink);
  transition: top .2s ease;
}
.skip-link:focus { top: 16px; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  height: var(--header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 var(--pad);
  border-bottom: 1px solid transparent;
  transition: background .3s ease, border-color .3s ease;
}
.site-header.is-scrolled {
  background: rgba(11, 11, 10, .86);
  border-color: var(--line);
  backdrop-filter: blur(18px);
}
.brand {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 11px;
  text-decoration: none;
}
.brand-copy {
  display: inline-flex;
  flex-direction: column;
  gap: 1px;
  font-size: 12px;
  line-height: 1;
  letter-spacing: .16em;
}
.brand-copy > span:last-child { color: var(--muted); }
.brand-mark {
  width: 34px;
  height: 34px;
  object-fit: contain;
  filter: invert(1);
}
#site-nav { display: flex; align-items: center; gap: clamp(20px, 3vw, 48px); }
#site-nav a {
  font-size: 13px;
  letter-spacing: .05em;
  text-decoration: none;
  color: rgba(240, 238, 232, .78);
  transition: color .2s ease;
}
#site-nav a:hover, #site-nav a:focus-visible { color: var(--paper); }
.menu-toggle { display: none; }

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  background: #141310;
}
.hero-reel, .hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero-reel {
  object-fit: cover;
  transform:translateZ(0);
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  will-change:transform;
}
.hero-shade {
  background:
    linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.04) 36%, rgba(0,0,0,.84)),
    linear-gradient(90deg, rgba(0,0,0,.38), transparent 58%);
}
.hero-copy {
  position: relative;
  z-index: 2;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: calc(var(--header-h) + 40px) var(--pad) var(--pad);
}
.eyebrow {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.hero .eyebrow { color: rgba(255,255,255,.7); }
.hero h1 {
  margin: 0;
  max-width: 13ch;
  font-size: clamp(56px, 9.1vw, 150px);
  font-weight: 400;
  letter-spacing: -.065em;
  line-height: .83;
}
.hero h1 > span { display: block; }
.hero h1 > span:last-child { margin-left: clamp(0px, 8vw, 130px); }
.hero-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: clamp(36px, 6vw, 86px);
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.35);
}
.hero-bottom p { margin: 0; max-width: 460px; font-size: clamp(15px, 1.3vw, 20px); line-height: 1.45; }
.round-link {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  text-decoration: none;
  font-size: 24px;
}
.reel-control {
  position: absolute;
  z-index: 3;
  top: calc(var(--header-h) + 16px);
  right: var(--pad);
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 999px;
  background: rgba(0,0,0,.3);
  color: white;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  backdrop-filter: blur(12px);
}

.section-pad { padding-left: var(--pad); padding-right: var(--pad); }
.intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
  gap: 32px;
  align-items: end;
  padding-top: clamp(72px, 8vw, 120px);
  padding-bottom: clamp(52px, 6vw, 88px);
  border-bottom: 1px solid var(--line);
}
h2, h3 { margin: 0; font-weight: 400; letter-spacing: -.055em; }
h2 { font-size: clamp(48px, 7vw, 112px); line-height: .9; }
h3 { font-size: clamp(38px, 5vw, 72px); line-height: .92; }
.section-lede { margin: 0; color: #c5c1b8; font-size: clamp(18px, 1.7vw, 24px); line-height: 1.45; }

.work-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding-top: clamp(48px, 6vw, 80px);
  padding-bottom: clamp(72px, 8vw, 112px);
}
.motion-column { min-width: 0; }
.featured-films {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(42px,5vw,72px) 16px;
  align-items:start;
}
.feature-card, .film-card { margin: 0; }
.feature-card { display:flex; min-width:0; flex-direction:column; }
.feature-card .film-poster { order:1; }
.project-heading {
  order:2;
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:6px;
  padding:14px 0 0;
  border:0;
}
.project-heading span { color: var(--muted); font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }
.project-heading strong { font-size: clamp(22px, 2.2vw, 34px); font-weight: 400; letter-spacing: -.035em; }
.film-poster {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  overflow: hidden;
  border: 0;
  padding: 0;
  background: #1a1917;
  color: white;
  cursor: pointer;
}
.film-poster img { width: 100%; height: 100%; object-fit: cover; transform:scale(var(--poster-scale,1)); transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .3s; }
.film-poster::after {
  content: "Play";
  position: absolute;
  inset: 50% auto auto 50%;
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: rgba(240,238,232,.92);
  color: var(--ink);
  font-size: 13px;
  letter-spacing: .05em;
  transition: transform .3s ease, background .3s ease;
}
.film-poster:hover img { transform: scale(calc(var(--poster-scale,1) * 1.025)); filter: brightness(.82); }
.film-poster:hover::after { transform: translate(-50%, -50%) scale(1.08); background: white; }
.film-meta { display: flex; justify-content: space-between; gap: 16px; padding-top: 14px; }
.film-meta strong { font-size: clamp(18px, 2vw, 28px); font-weight: 400; letter-spacing: -.025em; }
.film-meta span { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .11em; }
.reels-section {
  margin-top: clamp(72px, 8vw, 112px);
  padding-top: clamp(52px, 6vw, 80px);
  padding-bottom: 0;
  border-top: 1px solid var(--line);
}
.reels-heading {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 38px;
  align-items: end;
  margin-bottom: clamp(34px, 4vw, 58px);
}
.reels-heading > p {
  margin: 0;
  max-width: 430px;
  color: #c6c2b9;
  font-size: clamp(17px, 1.6vw, 23px);
  line-height: 1.48;
}
.reels-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:14px;
}
.reel-card { position:relative; margin: 0; overflow:hidden; }
.inline-reel { display: block; width: 100%; aspect-ratio: 9/16; border: 0; background: #000; pointer-events:none; }
.inline-reel-shell { position:relative; width:100%; aspect-ratio:9/16; overflow:hidden; background:#111; }
.inline-reel-shell .inline-reel,
.inline-reel-shell iframe { width:100%; height:100%; aspect-ratio:auto; border:0; pointer-events:none; }
.native-reel { object-fit:cover; }
.reel-playback-toggle {
  position:absolute;
  z-index:3;
  inset:0;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
}
.reel-playback-toggle span {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(5,5,5,.58);
  opacity:0;
  transform:scale(.92);
  transition:opacity .22s ease,transform .22s ease;
}
.reel-playback-toggle:hover span,
.reel-playback-toggle:focus-visible span,
.inline-reel-shell.is-paused .reel-playback-toggle span { opacity:1; transform:none; }
.inline-reel-shell.is-unavailable::after {
  content:"Temporarily unavailable";
  position:absolute;
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(6,6,6,.78);
  color:#fff;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}
.reel-card .film-poster { aspect-ratio: 9/16; }
.reel-card .film-poster img { height: 100%; object-fit: cover; }
.reel-card .film-poster::after { width: 54px; height: 54px; font-size: 11px; }
.reel-card .film-meta { align-items: baseline; }
.reel-card .film-meta strong { font-size: 16px; }
.reel-index { display:grid; gap:5px; margin-top:11px; }
.reel-index span { color:var(--muted); font-size:9px; letter-spacing:.1em; line-height:1.35; text-transform:uppercase; }
.reel-index strong { overflow:hidden; font-size:14px; font-weight:400; line-height:1.25; letter-spacing:-.015em; text-overflow:ellipsis; white-space:nowrap; }
.portfolio-link {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 24px;
  margin-top: clamp(42px, 5vw, 72px);
  padding: clamp(22px,2.4vw,32px);
  border:0;
  background:#121210;
  text-decoration: none;
  transition:background-color .25s ease;
}
.portfolio-link:hover { background:#181815; }
.portfolio-link > span:first-child { color: var(--muted); font-size: 11px; letter-spacing: .11em; text-transform: uppercase; }
.portfolio-link strong { font-size: clamp(24px, 3vw, 44px); font-weight: 400; letter-spacing: -.04em; }
.portfolio-link > span:last-child { font-size: 26px; transition: transform .25s ease; }
.portfolio-link:hover > span:last-child { transform: translate(4px, -4px); }
.archive-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin: clamp(110px, 15vw, 220px) 0 42px; }
.filters { display: flex; max-width: 640px; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.filter {
  padding: 9px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  cursor: pointer;
}
.filter:hover, .filter.is-active { border-color: var(--paper); color: var(--paper); }
.film-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(28px, 3vw, 48px) 14px; }
.film-card[hidden] { display: none; }
.film-card .film-poster::after { width: 54px; height: 54px; font-size: 11px; }
.film-card .film-meta strong { font-size: 18px; }

.compact-stills {
  display: grid;
  grid-template-columns: minmax(200px, .55fr) 1.45fr;
  gap: clamp(32px, 6vw, 90px);
  align-items: end;
  padding-top: 42px;
  padding-bottom: 52px;
  border-top: 1px solid var(--line);
}
.compact-stills-heading h2 { max-width: 10ch; font-size: clamp(28px, 3.2vw, 48px); line-height: 1; }
.photo-stack { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items:start; }
.photo-card {
  position: relative;
  overflow: hidden;
  border: 0;
  padding: 0;
  aspect-ratio: 4 / 5;
  background: #181715;
  display: block;
  cursor: pointer;
}
.photo-card:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.client-mark.client-testimonial-trigger { pointer-events:auto; cursor:pointer; border:0; background:transparent; padding:0; }
.client-testimonial-trigger:focus-visible { outline:2px solid var(--accent); outline-offset:8px; }
.testimonial-dialog { width:min(680px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); background:var(--bg,#0b0b09); color:var(--paper); overflow:auto; }
.testimonial-dialog::backdrop { background:rgba(0,0,0,.8); }
.testimonial-content { padding:clamp(22px,4vw,48px); }
.testimonial-content > button { display:block; margin:0 0 24px auto; color:inherit; background:transparent; border:1px solid var(--line); border-radius:30px; padding:8px 16px; cursor:pointer; }
.testimonial-content blockquote { margin:0; font-size:clamp(16px,2vw,20px); line-height:1.6; }
.testimonial-content p + p { margin-top:1.2em; }
.testimonial-content .client-attribution { margin-top:32px; }
.testimonial-trigger-label { position:absolute; top:calc(100% + 12px); left:50%; transform:translateX(-50%); width:max-content; max-width:none !important; opacity:1 !important; padding:9px 13px; border:1px solid rgba(227,92,50,.25); border-radius:999px; color:var(--paper); font-size:12px; font-weight:500; }
.photo-card::after {
  content:"";
  position:absolute;
  inset:38% 0 0;
  background:linear-gradient(to bottom,transparent,rgba(0,0,0,.72));
  pointer-events:none;
}
.photo-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.88); }
.photo-card img[src$="home-linkedin.webp"] { object-position:50% 20%; }
.photo-card span {
  position: absolute;
  z-index:1;
  inset: auto 14px 13px;
  padding: 0;
  background: transparent;
  color: white;
  font-size: 11px;
  font-weight:500;
  letter-spacing: .11em;
  text-transform: uppercase;
  text-shadow:0 1px 14px rgba(0,0,0,.72);
}

.process {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(46px, 8vw, 140px);
  align-items: center;
  overflow: hidden;
  padding-top: clamp(80px, 9vw, 128px);
  padding-bottom: clamp(80px, 9vw, 128px);
  border-top: 1px solid var(--line);
}
.process-copy { display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr); column-gap:clamp(48px,8vw,128px); align-items:start; }
.process-copy > .eyebrow,
.process-copy > h2,
.process-copy > .process-lede { grid-column:1; }
.process-copy > .process-steps { grid-column:2; grid-row:1 / span 4; }
.process h2 { max-width: 13ch; font-size: clamp(44px, 5vw, 78px); }
.process-lede { max-width: 34ch; margin: 28px 0 0; color: #c6c2b9; font-size: clamp(17px, 1.5vw, 22px); line-height: 1.5; }
.process-steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.process-steps li {
  display: grid;
  grid-template-columns: 42px minmax(145px, .55fr) 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.process-steps span { color: var(--accent); font-size: 11px; letter-spacing: .12em; }
.process-steps strong { font-size: clamp(17px, 1.5vw, 22px); font-weight: 400; }
.process-steps p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.45; }
.film-viewer .dialog-media { display:flex; flex-direction:column; gap:12px; }
.viewer-stage { flex:1; min-height:0; width:100%; display:flex; align-items:center; justify-content:center; gap:12px; }
.viewer-stage iframe { width:min(calc(100% - 112px),calc((100dvh - 280px)*1.7778)); max-height:100%; border-radius:18px; }
.glass-control,.dialog-close { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; border-radius:50%; border:1px solid #ffffff40; color:white; background:linear-gradient(135deg,#ffffff30,#ffffff0c); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); box-shadow:inset 0 1px 0 #ffffff55,0 5px 20px #0005; font-size:28px; cursor:pointer; }
.viewer-title { margin:0; font-size:14px; color:#ddd; text-align:center; }
.viewer-dock { display:flex; align-items:center; gap:12px; width:min(100%,1100px); padding:12px; border-radius:26px; background:#ffffff0e; border:1px solid #ffffff25; backdrop-filter:blur(24px); }
.viewer-strip { display:flex; gap:10px; overflow-x:auto; scrollbar-width:none; flex:1; }
.viewer-thumb { flex:0 0 140px; padding:4px; border:1px solid transparent; border-radius:14px; background:transparent; color:#ddd; cursor:pointer; text-align:left; }
.viewer-thumb img { width:100%; height:72px; object-fit:cover; border-radius:10px; }
.viewer-thumb span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:11px; padding:5px 2px; }
.viewer-thumb[aria-pressed=true] { border-color:#fff9; background:#ffffff20; }
.glass-control:focus-visible,.viewer-thumb:focus-visible,.dialog-close:focus-visible { outline:2px solid white; outline-offset:3px; }
@media(max-width:600px) { .viewer-stage { gap:5px; } .glass-control { width:32px; height:32px; } .viewer-stage iframe { width:calc(100% - 74px); } .viewer-dock { gap:6px; padding:8px; } .viewer-thumb { flex-basis:105px; } .viewer-thumb img { height:59px; } }
.clients {
  position:relative;
  padding-top:clamp(64px,6vw,88px);
  padding-bottom:clamp(64px,6vw,88px);
  overflow:hidden;
  border-top:1px solid var(--line);
  background:#090909;
  color:var(--paper);
}
.client-stage { position:relative; min-height:clamp(560px,calc(100vh - 150px),720px); }
.client-center {
  position:absolute;
  z-index:3;
  left:50%;
  top:45%;
  width:min(520px,46vw);
  transform:translate(-50%,-50%);
  text-align:center;
  pointer-events:none;
  transition:opacity .3s ease;
}
.client-center h2 { font-size:clamp(64px,8vw,126px); line-height:.84; }
.client-center p { margin:24px auto 0; max-width:390px; color:var(--muted); font-size:clamp(15px,1.2vw,18px); line-height:1.45; }
.client-grid { position:absolute; inset:0; }
.client-mark {
  position:absolute;
  left:var(--client-x);
  top:var(--client-y);
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(92px,9vw,154px);
  height:clamp(38px,4.8vw,70px);
  padding:0;
  border:0;
  background:transparent;
  color:rgba(240,238,232,.76);
  text-align:center;
  font-size:clamp(12px,.9vw,14px);
  line-height:1.25;
  transform:translate(-50%,-50%);
  animation:client-float 10s ease-in-out var(--client-delay) infinite;
  text-shadow:0 8px 26px rgba(0,0,0,.48);
  transition:opacity .35s ease,filter .35s ease;
  pointer-events:none;
}
.client-mark img {
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:.76;
  filter:grayscale(1) brightness(0) invert(1);
}
.client-mark > span:not(.client-mark-caption) { max-width:150px; opacity:.82; }
.client-mark-with-caption { flex-direction:column; gap:3px; }
.client-mark-with-caption img { height:calc(100% - 14px); }
.client-mark-caption {
  color:rgba(255,255,255,.86);
  font-size:9px;
  font-weight:600;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.client-mark[data-client="Azrieli College of Engineering Jerusalem"],
.client-mark[data-client="Theatron Hotel & Residences"],
.client-mark[data-client="JMark Interiors"],
.client-mark[data-client="Yeshivat Otniel"] { width:clamp(125px,12vw,196px); }
.client-mark[data-client="OU Israel"],
.client-mark[data-client="The Workshop Jerusalem"],
.client-mark[data-client="Israel Defense Forces"] { width:clamp(58px,6vw,92px); height:clamp(52px,6vw,92px); }
@keyframes client-float {
  0%,100% { translate:0 0; }
  50% { translate:var(--client-drift-x) var(--client-drift-y); }
}
.client-mark[data-client="Azrieli College of Engineering Jerusalem"] { width:clamp(180px,19vw,300px); height:90px; animation:none; }
.client-mark[data-client="Azrieli College of Engineering Jerusalem"] img { opacity:1; }
.client-mark.client-testimonial-trigger { width:clamp(90px,9vw,132px); height:clamp(90px,9vw,132px); animation:none; z-index:7; }
.client-mark.client-testimonial-trigger img { opacity:1; }

.client-story-card {
  position:absolute;
  z-index:6;
  left:var(--story-x,50%);
  right:auto;
  top:var(--story-y,17%);
  width:clamp(138px,12vw,184px);
  height:clamp(76px,7vw,104px);
  padding:0;
  border:0;
  border-radius:22px;
  background:transparent;
  color:white;
  cursor:pointer;
  perspective:1400px;
  transform:translate(-50%,-50%);
  transition:width .55s cubic-bezier(.16,1,.3,1),height .55s cubic-bezier(.16,1,.3,1),left .55s cubic-bezier(.16,1,.3,1),top .55s cubic-bezier(.16,1,.3,1),opacity .3s ease,filter .3s ease;
}
.client-waldorf { --story-x:50%; --story-y:8%; width:clamp(156px,14vw,218px); height:clamp(126px,11vw,162px); }
.client-huji { --story-x:17%; --story-y:64%; width:clamp(210px,21vw,310px); height:clamp(96px,9vw,132px); }
.client-ou { --story-x:85%; --story-y:48%; width:clamp(90px,9vw,132px); height:clamp(90px,9vw,132px); }
.client-story-card::after {
  content:attr(data-story-label);
  position:absolute;
  left:50%;
  bottom:-42px;
  width:max-content;
  padding:9px 13px;
  border:1px solid rgba(227,92,50,.25);
  border-radius:999px;
  background:rgba(227,92,50,.015);
  transform:translateX(-50%);
  color:var(--paper);
  font-size:12px;
  font-weight:500;
  letter-spacing:.01em;
  line-height:1.2;
  text-transform:none;
  transition:color .25s ease,transform .3s cubic-bezier(.2,.8,.2,1),opacity .25s ease;
}
.client-story-card:hover::after,.client-story-card:focus-visible::after { color:#fff; transform:translateX(-50%) translateY(-3px); }
.client-story-card.is-open::after { opacity:0; }
.client-story-inner { position:relative; display:block; width:100%; height:100%; }
.client-story-face {
  position:absolute;
  inset:0;
  display:flex;
  border:0;
  border-radius:inherit;
  overflow:hidden;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  box-shadow:none;
}
.client-story-front { align-items:center; justify-content:center; padding:0; background:transparent; overflow:visible; visibility:visible; transition:visibility 0s .55s; }
.client-story-card.is-open .client-story-front { visibility:hidden; transition:none; }
.client-story-front img {
  width:100%;
  height:100%;
  object-fit:contain;
  opacity:1;
  filter:grayscale(1) brightness(0) invert(1);
  transition:transform .3s ease,filter .3s ease,opacity .3s ease;
}
.client-story-card:hover .client-story-front img { transform:scale(1.07); opacity:1; filter:grayscale(1) brightness(0) invert(1); }
.client-story-back {
  flex-direction:column;
  justify-content:space-between;
  padding:clamp(24px,3vw,40px);
  transform:translateY(12px);
  visibility:hidden;
  opacity:0;
  transition:opacity .24s ease,transform .4s ease,visibility 0s .24s;
  background:#11110f;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 24px 70px rgba(0,0,0,.46);
  text-align:left;
}
.client-quote-mark { position:absolute; right:24px; top:2px; color:rgba(227,92,50,.48); font:110px/1 Georgia,serif; pointer-events:none; }
.client-quote { position:relative; z-index:1; overflow:auto; padding-right:56px; color:rgba(255,255,255,.84); font-size:clamp(12px,1vw,15px); line-height:1.45; }
.client-attribution { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; padding-top:20px; border-top:1px solid rgba(255,255,255,.14); }
.client-attribution strong { font-size:16px; font-weight:500; }
.client-attribution span { color:rgba(255,255,255,.52); font-size:10px; line-height:1.35; text-align:right; text-transform:uppercase; letter-spacing:.08em; }
.client-story-card.is-open { --story-x:50%; --story-y:50%; z-index:12; width:min(540px,82vw); height:min(410px,62vh); }
.client-huji.is-open { height:min(280px,48vh); }
.client-story-card.is-open .client-story-back { visibility:visible; opacity:1; transform:none; transition:opacity .25s .45s ease,transform .25s .45s ease; }
.client-stage:has(.client-story-card.is-open) .client-mark { opacity:.18; filter:blur(1px); }
.client-stage:has(.client-story-card.is-open) .client-center { opacity:.08; }
.client-stage:has(.client-story-card.is-open) .client-story-card:not(.is-open) { opacity:.08; filter:blur(1px); pointer-events:none; }
.client-story-card:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }

.language-statement {
  display:grid;
  align-items:center;
  padding-top:clamp(68px,7vw,108px);
  padding-bottom:clamp(68px,7vw,108px);
  border-top:1px solid var(--line);
  overflow:hidden;
}
.language-statement p {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  row-gap:clamp(20px,1.6vw,32px);
  margin:0;
  font-size:clamp(28px,5.25vw,94px);
  line-height:.92;
  letter-spacing:-.06em;
}
.language-statement > p > .language-line { display:block; max-width:100%; white-space:nowrap; }
.language-statement { padding-left:6.3vw; padding-right:4.7vw; }
.language-statement > p > .language-line:nth-child(1) { grid-column:1 / -1; grid-row:1; }
.language-statement > p > .language-line:nth-child(2) { grid-column:1 / -1; grid-row:2; justify-self:start; margin-left:48%; }
.language-statement > p > .language-line:nth-child(3) { grid-column:1 / -1; grid-row:3; margin-left:5.5%; }
.language-statement > p > .language-line:nth-child(4) { grid-column:1 / -1; grid-row:4; justify-self:start; margin-left:47%; }
.language-statement > p > .language-fluently {
  grid-column:1 / 13;
  justify-self:center;
  margin-top:clamp(28px,4vw,76px);
  font-size:clamp(12px,1vw,15px);
  line-height:1;
  letter-spacing:.52em;
  text-transform:uppercase;
}
.language-statement .reveal-word.is-lit { color:#fff; text-shadow:0 0 30px rgba(255,255,255,.06); }
.language-statement .language-line .reveal-word:last-child { color:rgba(227,92,50,.36); }
.language-statement .language-line .reveal-word:last-child.is-lit { color:var(--accent); text-shadow:0 0 28px rgba(227,92,50,.18); }

.about {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(360px, 1fr);
  gap: clamp(44px, 9vw, 150px);
  align-items: center;
  padding-top: clamp(80px, 9vw, 128px);
  padding-bottom: clamp(80px, 9vw, 128px);
}
.about-image { margin: 0; aspect-ratio: 3/4; overflow: hidden; }
.about-image img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.about-copy h2 { margin-bottom: 30px; }
.about-copy > p:not(.eyebrow) { max-width: 650px; color: #c6c2b9; font-size: clamp(17px, 1.45vw, 22px); line-height: 1.5; }
.text-link { display: inline-flex; gap: 30px; margin-top: 24px; padding-bottom: 8px; border-bottom: 1px solid var(--paper); text-decoration: none; }

.contact {
  position: relative;
  display: grid;
  grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr);
  gap: clamp(50px, 9vw, 150px);
  padding-top: clamp(90px, 12vw, 180px);
  padding-bottom: clamp(100px, 13vw, 180px);
  background: var(--accent);
  color: #110c09;
}
.contact .eyebrow { color: rgba(17,12,9,.62); }
.contact-intro h2 { margin-bottom: 42px; }
.contact-intro > a { display: block; width: max-content; margin: 10px 0; text-decoration: none; border-bottom: 1px solid rgba(17,12,9,.45); }
.contact-form { display: grid; gap: 24px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.contact-form label { display: grid; gap: 9px; font-size: 12px; text-transform: uppercase; letter-spacing: .09em; }
.contact-form label span { color: rgba(17,12,9,.6); text-transform: lowercase; letter-spacing: 0; }
.contact-form input, .contact-form textarea {
  width: 100%;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid rgba(17,12,9,.5);
  border-radius: 0;
  outline: none;
  background: transparent;
  color: #110c09;
  font-size: 18px;
}
.contact-form input:focus, .contact-form textarea:focus { border-color: #110c09; }
.form-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 14px; }
.form-submit button { display: flex; justify-content: space-between; gap: 50px; min-width: 240px; padding: 18px 20px; border: 1px solid #110c09; background: #110c09; color: var(--paper); cursor: pointer; }
.form-submit p { margin: 0; font-size: 13px; }
.form-response { grid-column:1 / -1; width:100%; height:360px; border:0; background:var(--paper); }
.form-response[hidden] { display:none; }
.form-submit button:disabled { opacity:.65; cursor:wait; }
.reel-error { margin:12px 0 0; color:var(--paper); font-size:13px; line-height:1.45; }

.site-footer {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  gap: 30px;
  padding-top: 60px;
  padding-bottom: 46px;
}
.footer-brand { font-size: 14px; }
.footer-brand .brand-mark { width: 42px; height: 42px; }
.footer-brand .brand-copy { font-size: 14px; }
.social-links { display: flex; gap: 18px; flex-wrap: wrap; justify-content: center; }
.social-links a { color: var(--muted); font-size: 12px; text-decoration: none; }
.site-footer > p { margin: 0; color: var(--muted); font-size: 11px; text-align: right; }

.media-dialog {
  width: 100vw;
  max-width: none;
  height: 100vh;
  max-height: none;
  margin: 0;
  padding: clamp(56px, 7vw, 100px) var(--pad) var(--pad);
  border: 0;
  background: rgba(6,6,5,.96);
  color: white;
}
.media-dialog::backdrop { background:rgba(0,0,0,.34); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.dialog-close { position: absolute; top: 22px; right: var(--pad); border: 0; background: transparent; color: white; cursor: pointer; }
.dialog-media { width: 100%; height: 100%; display: grid; place-items: center; }
.dialog-media iframe { width: min(1400px, 100%); aspect-ratio: 16/9; border: 0; }
.dialog-media img { width: auto; max-width: 100%; height: auto; max-height: 100%; object-fit: contain; }
.media-dialog.photo-viewer {
  box-sizing:border-box;
  width:100vw;
  height:100dvh;
  padding:52px clamp(10px,1.5vw,24px) 12px;
  overflow:hidden;
  background:rgba(3,3,3,.62);
  backdrop-filter:blur(11px);
  -webkit-backdrop-filter:blur(11px);
}
.media-dialog.photo-viewer .dialog-media {
  width:100%;
  height:100%;
  display:grid;
  grid-template-rows:minmax(0,1fr) 82px;
  align-items:stretch;
  gap:12px;
}
.photo-viewer-stage { position:relative; width:100%; height:100%; min-height:0; display:grid; place-items:center; }
.photo-viewer-frame {
  width:min(calc(100% - 116px),1400px);
  height:100%;
  min-height:0;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  margin:0;
}
.photo-viewer-frame img { min-height:0; width:100%; height:100%; object-fit:contain; }
.photo-viewer-frame figcaption { display:flex; justify-content:space-between; gap:24px; padding-top:10px; color:rgba(255,255,255,.58); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.photo-viewer-frame figcaption strong { color:#fff; font-weight:500; }
.photo-viewer-control {
  position:absolute;
  z-index:3;
  top:50%;
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  padding:0 0 2px;
  border:1px solid rgba(255,255,255,.32);
  border-radius:50%;
  background:rgba(12,12,11,.45);
  color:#fff;
  box-shadow:inset 0 1px rgba(255,255,255,.12),0 8px 24px rgba(0,0,0,.2);
  font-size:20px;
  line-height:1;
  cursor:pointer;
  transform:translateY(-50%);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:transform .2s ease,background-color .2s ease,border-color .2s ease;
}
.photo-viewer-control:hover { transform:translateY(-50%) scale(1.06); border-color:rgba(255,255,255,.58); background:rgba(255,255,255,.13); }
.photo-viewer-prev { left:10px; }
.photo-viewer-next { right:10px; }
.photo-viewer-dock {
  box-sizing:border-box;
  width:min(920px,100%);
  height:82px;
  justify-self:center;
  display:flex;
  align-items:center;
  gap:6px;
  overflow-x:auto;
  padding:7px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:#10100e;
  scrollbar-width:none;
}
.photo-viewer-dock::-webkit-scrollbar { display:none; }
.photo-viewer-thumb { flex:0 0 86px; height:66px; padding:3px; border:1px solid transparent; border-radius:7px; background:transparent; cursor:pointer; }
.photo-viewer-thumb img { width:100%; height:100%; object-fit:contain; border-radius:4px; }
.photo-viewer-thumb[aria-pressed="true"] { border-color:rgba(255,255,255,.72); background:rgba(255,255,255,.1); }
.media-dialog.photo-viewer .dialog-close { top:10px; right:14px; z-index:8; }
.film-viewer { height:100dvh; padding:68px 24px 20px; overflow:hidden; }
.film-viewer .viewer-stage iframe { flex:none; width:min(calc(100% - 112px),calc((100dvh - 270px) * 1.77778)); aspect-ratio:16/9; border:0; }
.film-viewer .viewer-dock { flex-shrink:0; }
.film-viewer .viewer-thumb img { display:block; width:100%; height:72px; object-fit:cover; }
.media-dialog .dialog-close { border:1px solid #ffffff40; background:linear-gradient(135deg,#ffffff30,#ffffff0c); z-index:3; }
@media(max-width:600px) {
  .media-dialog.photo-viewer { padding:48px 6px 7px; }
  .media-dialog.photo-viewer .dialog-media { grid-template-rows:minmax(0,1fr) 70px; gap:7px; }
  .photo-viewer-frame { width:calc(100% - 64px); }
  .photo-viewer-control { width:32px; height:32px; font-size:18px; }
  .photo-viewer-prev { left:3px; }
  .photo-viewer-next { right:3px; }
  .photo-viewer-dock { height:70px; padding:5px; }
  .photo-viewer-thumb { flex-basis:72px; height:58px; }
  .film-viewer { padding:65px 8px 12px; }
  .film-viewer .viewer-stage iframe { width:min(calc(100% - 74px),calc((100dvh - 240px) * 1.77778)); }
  .film-viewer .viewer-thumb img { height:59px; }
}
@media(max-height:450px) {
  .film-viewer { padding-top:12px; }
  .film-viewer .viewer-stage iframe { width:min(calc(100% - 112px),calc((100dvh - 140px) * 1.77778)); }
  .film-viewer .viewer-thumb img { height:38px; }
  .film-viewer .viewer-title { font-size:11px; }
  .film-viewer .viewer-dock { padding:5px; }
}

.portfolio-body { min-height: 100vh; }
.portfolio-nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 42px); }
.portfolio-nav a { color: rgba(240,238,232,.78); font-size: 13px; letter-spacing: .05em; text-decoration: none; }
.portfolio-nav a:hover { color: var(--paper); }
.portfolio-nav a[aria-current="page"] { color:var(--paper); }
.media-pair { display:inline-flex; align-items:center; justify-content:center; gap:.2em; white-space:nowrap; letter-spacing:-.025em; }
.media-pair .media-pair-x { margin:0; font-size:1.25em; font-weight:400; line-height:.8; opacity:1; color:var(--accent); }
.portfolio-tab.media-pair.is-active .media-pair-x { color:#b9401d; }
.portfolio-hero {
  display:grid;
  grid-template-columns:minmax(0,1.25fr) auto;
  gap:clamp(42px,7vw,110px);
  align-items:end;
  padding-top: clamp(120px, 12vw, 180px);
  padding-bottom: clamp(44px, 5vw, 72px);
  border-bottom: 1px solid var(--line);
}
.portfolio-hero h1 {
  margin: 0;
  font-size: clamp(54px, 7.8vw, 118px);
  font-weight: 400;
  letter-spacing: -.065em;
  line-height: .82;
}
.portfolio-hero-copy > p:last-child { max-width:610px; margin:30px 0 0; color:#b8b4ab; font-size:clamp(16px,1.45vw,21px); line-height:1.45; }
.portfolio-tabs { display: flex; gap: 12px; margin-top: 0; }
.portfolio-tab {
  min-width: 150px;
  padding: 15px 22px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
}
.portfolio-tab:hover, .portfolio-tab.is-active { border-color: var(--paper); background: var(--paper); color: var(--ink); }
.portfolio-tab span { margin-left: 8px; font-size: 10px; opacity: .58; }
.portfolio-panel { padding-top: clamp(70px, 9vw, 130px); padding-bottom: clamp(100px, 13vw, 190px); }
.portfolio-panel[hidden] { display: none; }
.portfolio-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 36px; margin-bottom: clamp(48px, 6vw, 84px); }
.portfolio-toolbar h2 { font-size: clamp(46px, 6vw, 86px); letter-spacing:-.025em; }
.portfolio-film-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(40px, 5vw, 72px) 15px; }
.portfolio-film-card[hidden], .portfolio-photo-card[hidden] { display: none; }
.portfolio-film-card { position:relative; overflow:hidden; }
.portfolio-film-card .film-poster::after { width: 54px; height: 54px; font-size: 11px; }
.portfolio-film-card.is-vertical { grid-row: span 2; }
.portfolio-film-card.is-vertical .film-poster { aspect-ratio: 9/16; }
.portfolio-card-meta {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 14px;
  padding-top: 14px;
}
.portfolio-card-meta span { grid-column: 1; color: var(--muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.portfolio-card-meta strong { grid-column: 1; font-size: 18px; font-weight: 400; letter-spacing: -.025em; }
.portfolio-card-meta small { grid-column: 2; grid-row: 1 / 3; align-self: end; color: var(--muted); font-size: 10px; }
.portfolio-photo-grid { columns: 4; column-gap: 10px; }
.portfolio-photo-card {
  display: block;
  width: 100%;
  margin: 0 0 10px;
  break-inside: avoid;
  position: relative;
  overflow: hidden;
  border: 0;
  padding: 0;
  aspect-ratio: auto;
  background: #191816;
  cursor: zoom-in;
}
.portfolio-photo-card img { width: 100%; height: auto; object-fit: contain; transition: filter .3s ease; }
.portfolio-photo-card:hover img { filter: brightness(.86); }
.portfolio-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 42px;
  padding-bottom: 42px;
  border-top: 1px solid var(--line);
}

@media (max-width: 960px) {
  .intro { grid-template-columns: 1fr; }
  .intro .section-lede { grid-column: auto; max-width:620px; }
  .work-shell { grid-template-columns: 1fr; }
  .featured-films { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reels-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .film-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-film-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-photo-grid { column-count: 3; }
  .about { grid-template-columns: .85fr 1fr; gap: 44px; }
  .process { grid-template-columns: 1fr; }
  .process-copy { grid-template-columns:1fr; }
  .process-copy > .eyebrow,
  .process-copy > h2,
  .process-copy > .process-lede,
  .process-copy > .process-steps { grid-column:1; }
  .process-copy > .process-steps { grid-row:auto; margin-top:44px; }
  .contact { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  :root { --header-h: 66px; }
  .site-header { background: rgba(11,11,10,.62); backdrop-filter: blur(14px); }
  .menu-toggle { display: block; min-width:44px; min-height:44px; padding: 8px 0; border: 0; background: transparent; color: var(--paper); font-size: 12px; }
  #site-nav {
    position: absolute;
    top: var(--header-h);
    left: 0;
    width: 100%;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 10px var(--pad) 24px;
    background: rgba(11,11,10,.96);
    border-bottom: 1px solid var(--line);
  }
  #site-nav.is-open { display: flex; }
  #site-nav a { padding: 12px 0; font-size: 16px; }
  .hero-copy { padding-bottom: 28px; }
  .hero h1 { font-size: clamp(50px, 16vw, 86px); line-height: .87; }
  .hero h1 > span:last-child { margin-left: 0; }
  .hero-bottom { align-items: center; }
  .hero-bottom p { max-width: 260px; font-size: 14px; }
  .round-link { width: 46px; height: 46px; }
  .intro { grid-template-columns: 1fr; gap: 20px; }
  .intro .section-lede { grid-column: 1; }
  .work-shell { padding-top: 58px; }
  .featured-films { grid-template-columns:1fr; }
  .feature-card:first-child { grid-column:auto; }
  .photo-rail { grid-template-columns: 1fr; }
  .archive-heading { align-items: flex-start; flex-direction: column; }
  .portfolio-link { grid-template-columns: 1fr auto; }
  .portfolio-link > span:first-child { grid-column: 1 / -1; }
  .reels-heading { grid-template-columns: 1fr; }
  .reels-grid {
    display: flex;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    overscroll-behavior-inline: contain;
    margin-right: calc(var(--pad) * -1);
    padding-right: var(--pad);
    padding-bottom: 12px;
  }
  .reel-card { flex: 0 0 min(72vw, 320px); scroll-snap-align: start; }
  .filters { justify-content: flex-start; }
  .filters .filter { min-height:44px; min-width:44px; }
  .film-grid { grid-template-columns: 1fr; }
  .project-heading { grid-template-columns: 1fr; gap: 7px; }
  .compact-stills { grid-template-columns: 1fr; }
  .photo-stack { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .photo-card { aspect-ratio:4 / 5; }
  .process { gap: 58px; }
  .process h2 br { display: none; }
  .process-steps li { grid-template-columns: 32px 1fr; gap: 8px 14px; }
  .process-steps p { grid-column: 2; }
  .film-poster::after { width: 58px; height: 58px; }
  .client-stage { min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 18px; }
  .client-center { position:relative; left:auto; top:auto; grid-column:1 / -1; width:100%; transform:none; margin-bottom:26px; }
  .client-center h2 { font-size:clamp(56px,18vw,86px); }
  .client-grid { position:relative; inset:auto; grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center; gap:22px 14px; }
  .client-mark,
  .client-mark[data-client="Azrieli College of Engineering Jerusalem"],
  .client-mark[data-client="Theatron Hotel & Residences"],
  .client-mark[data-client="JMark Interiors"],
  .client-mark[data-client="Yeshivat Otniel"],
  .client-mark[data-client="OU Israel"],
  .client-mark[data-client="The Workshop Jerusalem"],
  .client-mark[data-client="Israel Defense Forces"] {
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    height:56px;
    padding:4px;
    transform:none;
    animation:none;
  }
  .client-story-card,
  .client-waldorf,
  .client-huji { position:relative; left:auto; right:auto; top:auto; display:block; width:100%; height:124px; margin:0 0 48px; transform:none; }
  .client-story-card::after { bottom:-36px; padding:8px 10px; font-size:11px; letter-spacing:0; }
  .client-mark.client-testimonial-trigger { order:-1; margin-bottom:48px; }
  .client-mark[data-client="Azrieli College of Engineering Jerusalem"] { grid-column:span 2; order:-2; height:80px; }
  .testimonial-trigger-label { font-size:11px; padding:8px 10px; }
  .client-story-card.is-open { grid-column:1 / -1; grid-row:2; top:auto; width:100%; height:auto; }
  .client-story-card.is-open .client-story-inner { height:auto; }
  .client-story-card.is-open .client-story-back { position:relative; }
  .client-story-card.is-open .client-quote { overflow:visible; }
  .client-stage:has(.client-story-card.is-open) .client-story-card:not(.is-open) { display:none; }
  .client-story-back { padding:24px; }
  .client-quote { font-size:12px; }
  .about { grid-template-columns: 1fr; }
  .about-image { aspect-ratio: 4/5; }
  .about-copy h2 { margin-bottom: 34px; }
  .form-row { grid-template-columns: 1fr; }
  .form-submit { align-items: flex-start; flex-direction: column; }
  .site-footer { grid-template-columns: 1fr; align-items: start; }
  .social-links { justify-content: flex-start; }
  .site-footer > p { text-align: left; }
  .portfolio-nav [data-open-tab] { display: none; }
  .portfolio-nav { gap:12px; }
  .portfolio-nav a { padding:14px 0; }
  .portfolio-hero { grid-template-columns:minmax(0,1fr); padding-top: 120px; }
  .portfolio-hero-copy { min-width:0; }
  .portfolio-tabs { width:100%; }
  .portfolio-tab { min-width:0; flex:1; }
  .portfolio-hero h1 { font-size:clamp(48px,14vw,72px); }
  .portfolio-toolbar { align-items: flex-start; flex-direction: column; }
  .portfolio-film-grid { grid-template-columns: 1fr; }
  .portfolio-film-card.is-vertical { grid-row: auto; }
  .portfolio-film-card.is-vertical .film-poster { max-width: 320px; }
  .portfolio-photo-grid { column-count: 2; }
  .portfolio-footer { align-items: flex-start; flex-direction: column; gap: 30px; }
  .language-statement { padding-top:64px; padding-bottom:64px; }
  .language-statement p { grid-template-columns:repeat(6,minmax(0,1fr)); row-gap:22px; font-size:clamp(22px,6.7vw,40px); }
  .language-statement > p > .language-line:nth-child(1) { grid-column:1 / 7; }
  .language-statement > p > .language-line:nth-child(2) { grid-column:1 / 7; justify-self:end; margin-left:0; }
  .language-statement > p > .language-line:nth-child(3) { grid-column:1 / 7; margin-left:5.5%; }
  .language-statement > p > .language-line:nth-child(4) { grid-column:1 / 7; justify-self:end; margin-left:0; }
  .language-statement > p > .language-fluently { grid-column:1 / 7; }
}

@media (prefers-reduced-motion: reduce) {
  html, html.home-page, html.portfolio-page { scroll-behavior:auto; scroll-snap-type:none; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Full-screen film viewer. Last in the file so base dialog rules cannot override it. */
.media-dialog.film-viewer {
  box-sizing:border-box;
  width:100vw;
  height:100dvh;
  padding:52px clamp(12px,1.4vw,22px) 12px;
  overflow:hidden;
  background:rgba(3,3,3,.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.media-dialog.film-viewer .dialog-media {
  width:100%;
  height:100%;
  display:grid;
  grid-template-rows:minmax(0,1fr) 94px;
  gap:12px;
}
.media-dialog.film-viewer .viewer-stage {
  position:relative;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(230px,17vw);
  align-items:center;
  gap:clamp(14px,1.4vw,24px);
}
.media-dialog.film-viewer .viewer-frame-shell {
  position:relative;
  justify-self:end;
  width:min(100%,calc((100dvh - 160px) * 16 / 9));
  max-height:none;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  border-radius:18px;
  background:#000;
  box-shadow:0 34px 100px rgba(0,0,0,.62);
}
.media-dialog.film-viewer .viewer-player,
.media-dialog.film-viewer .viewer-frame-shell iframe { display:block; width:100%; height:100%; border:0; pointer-events:none; }
.media-dialog.film-viewer .viewer-playback-toggle {
  position:absolute;
  z-index:4;
  inset:0;
  display:grid;
  place-items:center;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  cursor:pointer;
}
.media-dialog.film-viewer .viewer-playback-toggle[hidden] { display:none; }
.media-dialog.film-viewer .viewer-playback-toggle:disabled { cursor:progress; }
.media-dialog.film-viewer .viewer-playback-toggle span {
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid rgba(255,255,255,.36);
  border-radius:50%;
  background:rgba(5,5,5,.58);
  box-shadow:0 10px 30px rgba(0,0,0,.3);
  opacity:0;
  transform:scale(.92);
  transition:opacity .2s ease,transform .2s ease;
  pointer-events:none;
}
.media-dialog.film-viewer .viewer-playback-toggle:hover span,
.media-dialog.film-viewer .viewer-playback-toggle:focus-visible span,
.media-dialog.film-viewer .viewer-frame-shell.is-paused .viewer-playback-toggle span {
  opacity:1;
  transform:none;
}
.media-dialog.film-viewer .viewer-fallback {
  position:absolute;
  inset:0;
  overflow:auto;
  display:grid;
  place-items:center;
  background-position:center;
  background-size:cover;
  color:#fff;
  text-decoration:none;
}
.media-dialog.film-viewer .viewer-fallback[hidden] { display:none; }
.media-dialog.film-viewer .viewer-loading { display:none; position:absolute; inset:0; background-position:center; background-size:cover; pointer-events:none; }
.media-dialog.film-viewer .is-loading .viewer-loading { display:grid; place-items:center; }
.media-dialog.film-viewer .viewer-watch-link { color:#fff; text-underline-offset:4px; }
.media-dialog.film-viewer .viewer-fallback-actions { display:grid; justify-items:center; gap:14px; padding:20px; text-align:center; }
.media-dialog.film-viewer .viewer-retry { padding:12px 24px; border:0; border-radius:999px; background:var(--paper); color:var(--ink); cursor:pointer; }
.media-dialog.film-viewer .viewer-retry:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.media-dialog.film-viewer .viewer-fallback span {
  padding:11px 16px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(12,12,12,.52);
  box-shadow:inset 0 1px rgba(255,255,255,.16);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.media-dialog.film-viewer .viewer-story {
  align-self:center;
  max-height:calc(100dvh - 180px);
  overflow:auto;
  padding:clamp(20px,2.2vw,34px);
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;
  background:#10100e;
  box-shadow:none;
}
.viewer-story-eyebrow { color:var(--accent); font-size:9px; letter-spacing:.16em; text-transform:uppercase; }
.viewer-story h2 { margin:14px 0 8px; font-size:clamp(24px,2vw,38px); line-height:.94; letter-spacing:-.045em; }
.viewer-story-client { margin:0 0 22px; color:rgba(255,255,255,.5); font-size:11px; line-height:1.35; text-transform:uppercase; letter-spacing:.08em; }
.viewer-story-summary { margin:0 0 24px; color:rgba(255,255,255,.78); font-size:clamp(13px,.95vw,16px); line-height:1.48; }
.viewer-story dl { margin:0; }
.viewer-story dl div { padding:14px 0; border-top:1px solid rgba(255,255,255,.11); }
.viewer-story dt { margin-bottom:5px; color:rgba(255,255,255,.38); font-size:8px; letter-spacing:.14em; text-transform:uppercase; }
.viewer-story dd { margin:0; color:rgba(255,255,255,.78); font-size:11px; line-height:1.42; }
.media-dialog.film-viewer .viewer-dock {
  box-sizing:border-box;
  width:min(1040px,100%);
  height:94px;
  margin:0 auto;
  padding:8px 10px;
  display:grid;
  grid-template-columns:32px minmax(0,1fr) 32px;
  align-items:center;
  gap:6px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  background:#10100e;
  box-shadow:none;
}
.media-dialog.film-viewer .viewer-strip { min-width:0; display:flex; gap:7px; overflow-x:auto; scrollbar-width:none; }
.media-dialog.film-viewer .viewer-strip::-webkit-scrollbar { display:none; }
.media-dialog.film-viewer .viewer-thumb { box-sizing:border-box; flex:0 0 112px; min-width:0; padding:3px; border:1px solid transparent; border-radius:11px; background:transparent; color:#fff; text-align:left; cursor:pointer; }
.media-dialog.film-viewer .viewer-thumb img { display:block; width:100%; height:54px; max-height:none; object-fit:cover; border-radius:8px; }
.media-dialog.film-viewer .viewer-thumb span { display:block; padding:4px 2px 0; overflow:hidden; color:rgba(255,255,255,.62); font-size:9px; white-space:nowrap; text-overflow:ellipsis; }
.media-dialog.film-viewer .viewer-thumb[aria-pressed="true"] { border-color:rgba(255,255,255,.62); background:rgba(255,255,255,.14); }
.media-dialog.film-viewer .glass-control,
.media-dialog.film-viewer .dialog-close {
  width:34px !important;
  height:34px !important;
  border:1px solid rgba(255,255,255,.17);
  border-radius:50%;
  background:rgba(8,8,7,.82);
  color:rgba(255,255,255,.88);
  box-shadow:0 8px 24px rgba(0,0,0,.32);
  font-size:18px;
  font-weight:300;
  line-height:1;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:transform .22s ease,background-color .22s ease,border-color .22s ease;
}
.media-dialog.film-viewer .glass-control:hover,
.media-dialog.film-viewer .dialog-close:hover { transform:scale(1.06); border-color:rgba(255,255,255,.38); background:rgba(255,255,255,.14); }
.media-dialog.film-viewer .dialog-close { top:10px; right:14px; z-index:8; }
.media-dialog.film-viewer .viewer-prev,
.media-dialog.film-viewer .viewer-next {
  position:absolute;
  z-index:5;
  top:50%;
  width:38px !important;
  height:38px !important;
  padding:0 0 2px;
  border-color:rgba(255,255,255,.3);
  border-radius:50%;
  background:rgba(12,12,11,.42);
  transform:translateY(-50%);
  font-size:20px;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.media-dialog.film-viewer .viewer-prev { left:12px; }
.media-dialog.film-viewer .viewer-next { right:12px; }
.media-dialog.film-viewer .viewer-prev:hover,
.media-dialog.film-viewer .viewer-next:hover { transform:translateY(-50%) scale(1.06); }
.media-dialog.film-viewer .viewer-dock > .glass-control { width:28px !important; height:28px !important; font-size:18px; }
@media(max-width:900px) {
  .media-dialog.film-viewer { padding:50px 8px 8px; overflow:hidden; }
  .media-dialog.film-viewer .dialog-media { height:100%; min-height:0; overflow:auto; grid-template-rows:minmax(max-content,1fr) 88px; }
  .media-dialog.film-viewer .viewer-stage { grid-template-columns:1fr; align-items:start; }
  .media-dialog.film-viewer .viewer-frame-shell { grid-column:1; grid-row:2; justify-self:center; width:100%; max-height:none; }
  .media-dialog.film-viewer .viewer-story { display:contents; }
  .media-dialog.film-viewer .viewer-story-heading {
    grid-column:1;
    grid-row:1;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    min-height:max(160px,calc(50dvh - 28.125vw - 55px));
    padding:8px 20px 18px;
  }
  .media-dialog.film-viewer .viewer-story-heading .viewer-story-client { margin-bottom:0; }
  .media-dialog.film-viewer .viewer-story-body {
    grid-column:1;
    grid-row:3;
    padding:20px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:18px;
    background:#10100e;
  }
  .media-dialog.film-viewer .viewer-story-summary { max-width:62ch; }
  .media-dialog.film-viewer .viewer-story dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .media-dialog.film-viewer .viewer-dock { position:sticky; bottom:0; height:88px; }
}
@media(max-width:900px) and (max-height:500px) and (orientation:landscape) {
  .media-dialog.film-viewer { padding-top:40px; }
  .media-dialog.film-viewer .viewer-stage { gap:10px; }
  .media-dialog.film-viewer .viewer-story-heading { min-height:50px; padding:0 58px 0 20px; }
  .media-dialog.film-viewer .viewer-story-heading .viewer-story-eyebrow { display:none; }
  .media-dialog.film-viewer .viewer-story-heading h2 { margin:0 0 6px; font-size:22px; }
  .media-dialog.film-viewer .viewer-frame-shell { width:min(100%,calc((100dvh - 200px) * 16 / 9)); }
}
@media(max-width:600px) {
  .media-dialog.film-viewer .viewer-story dl { grid-template-columns:1fr; gap:0; }
  .media-dialog.film-viewer .dialog-close,
  .media-dialog.film-viewer .viewer-prev,
  .media-dialog.film-viewer .viewer-next,
  .media-dialog.film-viewer .viewer-dock > .glass-control,
  .photo-viewer-control { isolation:isolate; }
  .media-dialog.film-viewer .dialog-close::after,
  .media-dialog.film-viewer .viewer-prev::after,
  .media-dialog.film-viewer .viewer-next::after,
  .media-dialog.film-viewer .viewer-dock > .glass-control::after,
  .photo-viewer-control::after { content:''; position:absolute; inset:-8px; }
  .media-dialog.film-viewer .viewer-dock > .glass-control { position:relative; }
  .media-dialog.film-viewer .viewer-story h2 { font-size:28px; }
  .media-dialog.film-viewer .viewer-dock { height:82px; grid-template-columns:28px minmax(0,1fr) 28px; padding:6px; border-radius:17px; }
  .media-dialog.film-viewer .viewer-thumb { flex-basis:94px; }
  .media-dialog.film-viewer .viewer-thumb img { height:46px; }
  .media-dialog.film-viewer .viewer-prev,.media-dialog.film-viewer .viewer-next { width:32px !important; height:32px !important; }
  .media-dialog.film-viewer .viewer-prev { left:7px; }
  .media-dialog.film-viewer .viewer-next { right:7px; }
}

/* Editorial scroll treatments */
.language-statement .scroll-copy { color:#55534e !important; }
.language-statement .reveal-word { color:color-mix(in srgb,#55534e,var(--paper) calc(var(--reveal-progress,0) * 100%)); transition:color .12s linear; }
.language-statement .reveal-word.is-lit { color:var(--paper); text-shadow:none; }
.language-statement .language-line .reveal-word:last-child { color:color-mix(in srgb,#593022,var(--accent) calc(var(--reveal-progress,0) * 100%)); text-shadow:none; }
.language-statement .language-line .reveal-word:last-child.is-lit { color:var(--accent); }
.title-reveal .title-word {
  display:inline-block;
  opacity:0;
  transform:translate3d(0,.48em,0) scale(.985);
  clip-path:inset(100% -2% -12%);
  transition:transform .8s cubic-bezier(.16,1,.3,1),clip-path .8s cubic-bezier(.16,1,.3,1),opacity .55s ease;
  transition-delay:calc(var(--title-order,0) * 65ms);
}
.title-reveal.is-title-visible .title-word { opacity:1; transform:none; clip-path:inset(-12% -2% -12%); }
.motion-ready .reveal-item {
  opacity:0;
  transform:translateY(20px);
  transition:opacity .8s cubic-bezier(.2,.75,.2,1),transform .8s cubic-bezier(.2,.75,.2,1);
}
.motion-ready .reveal-item.is-visible { opacity:1; transform:none; }
.featured-films .reveal-item:nth-child(2n),.reels-grid .reveal-item:nth-child(2n) { transition-delay:.08s; }

.ai-summary {
  display:grid;
  justify-items:end;
  padding-top:24px;
  padding-bottom:0;
}
.ai-summary::before { display:none; }
.summary-trigger {
  width:auto;
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 0;
  border:0;
  background:transparent;
  color:rgba(240,238,232,.72);
  font-size:13px;
  letter-spacing:.01em;
  text-align:left;
  cursor:pointer;
}
.summary-spark {
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:30px;
  height:30px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:#121210;
  box-shadow:none;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),background-color .3s ease;
  font-size:12px;
}
.summary-trigger:hover .summary-spark,.summary-trigger[aria-expanded="true"] .summary-spark { transform:rotate(45deg) scale(1.08); background:var(--accent); }
.summary-panel {
  width:min(100%,620px);
  padding:18px 0 8px;
  animation:summary-in .5s cubic-bezier(.2,.75,.2,1) both;
}
.summary-panel[hidden] { display:none; }
.summary-panel > p:not(.eyebrow) { margin:10px 0 18px; color:#c5c1b8; font-size:16px; line-height:1.48; letter-spacing:0; }
.summary-panel a { display:inline-flex; align-items:center; gap:24px; padding-bottom:5px; border-bottom:1px solid rgba(255,255,255,.4); text-decoration:none; font-size:13px; }
.summary-panel a:hover { border-color:var(--paper); }
@keyframes summary-in { from { opacity:0; transform:translateY(-16px); } to { opacity:1; transform:none; } }

@media(max-width:600px) {
  .ai-summary { justify-items:start; padding-top:20px; }
  .summary-trigger { font-size:13px; }
  .summary-spark { width:30px; height:30px; }
}
@media(prefers-reduced-motion:reduce) {
  .title-reveal .title-word { opacity:1; transform:none; clip-path:none; transition:none; }
  .reveal-word { color:var(--paper); }
  .motion-ready .reveal-item { opacity:1; transform:none; }
  .client-mark { animation:none; }
}

/* Approved final refinements: restrained frame motion and complete campaign work. */
.frame-reveal .film-poster { clip-path:inset(8% 0 8%); opacity:0; transition:clip-path .7s cubic-bezier(.16,1,.3,1),opacity .5s ease; transition-delay:var(--frame-delay,0ms); }
.frame-reveal.is-frame-visible .film-poster { clip-path:inset(0); opacity:1; }
@media(hover:hover) and (pointer:fine) {
  .film-poster img { transition:transform .65s cubic-bezier(.2,.7,.2,1); }
  .film-poster:hover img { transform:scale(calc(var(--poster-scale,1) * 1.025)); }
}
.production-options { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:54px; }
.production-options h3 { margin:0 0 14px; font-size:clamp(23px,2.4vw,34px); letter-spacing:-.04em; font-weight:400; }
.production-options p { margin:0; max-width:40ch; font-size:16px; line-height:1.5; color:var(--muted); }
.campaign-link,.share-link { display:inline-block; background:none; border:0; padding:10px 0; color:var(--paper); font-size:12px; line-height:1.5; text-align:left; text-decoration:underline; text-underline-offset:5px; text-decoration-color:#ffffff35; cursor:pointer; }
.share-link:hover,.campaign-link:hover { text-decoration-color:var(--accent); }
.share-link[hidden] { display:none; }
.share-fallback { width:100%; min-width:0; padding:10px; font-size:12px; color:var(--paper); background:#151513; border:1px solid var(--line); }
.campaign { padding-bottom:60px; scroll-margin-top:140px; }
.campaign[hidden] { display:none; }
.campaign-heading { display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:end; margin-bottom:36px; }
.coverage-intro { max-width:850px; margin-bottom:clamp(56px,7vw,100px); }
.coverage-intro h2 { margin-bottom:24px; }
.coverage-intro > p:not(.eyebrow) { max-width:65ch; color:var(--muted); font-size:clamp(16px,1.5vw,20px); line-height:1.6; }
.coverage-intro > p + p { margin-top:16px; }
#videos-panel, #photos-panel, #photo-video-panel { padding-top:clamp(40px,5vw,64px); }
.video-process-intro { max-width:none; margin-bottom:clamp(40px,4vw,56px); }
.video-process-intro > p:not(.eyebrow) { max-width:85ch; margin:0; }
#videos-panel .portfolio-toolbar, #photos-panel .portfolio-toolbar { margin-bottom:32px; }
.video-process-stages { display:flex; align-items:center; gap:clamp(20px,2.5vw,36px); padding:0; margin:0 0 24px; list-style:none; }
.video-process-stages li { display:flex; align-items:center; gap:clamp(20px,2.5vw,36px); }
.video-process-stages .stage-title { margin:0; font-size:clamp(25px,2.5vw,38px); line-height:1.2; letter-spacing:-.035em; white-space:nowrap; }
.video-process-stages li:not(:last-child)::after { content:''; flex:none; width:24px; height:24px; background:var(--accent); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 12h18M14 5l7 7-7 7' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 12h18M14 5l7 7-7 7' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat; }
@media (max-width:900px) {
  .video-process-stages { flex-direction:column; align-items:flex-start; gap:12px; }
  .video-process-stages li { flex-direction:column; align-items:flex-start; gap:12px; }
  .video-process-stages .stage-title { font-size:clamp(24px,4vw,32px); white-space:normal; }
  .video-process-stages li:not(:last-child)::after { transform:rotate(90deg); width:20px; height:20px; }
}
.campaign h2 { font-size:clamp(44px,6vw,88px); line-height:.94; font-weight:400; letter-spacing:-.02em; margin:16px 0 0; }
.coverage-package-stages li:not(:last-child)::after { content:'×'; background:none; -webkit-mask:none; mask:none; transform:none; color:var(--accent); font-size:22px; line-height:24px; }
#photo-video-panel .video-process-intro > p + p { margin-top:16px; }
.campaign-heading > p { color:var(--muted); max-width:40ch; font-size:17px; line-height:1.5; margin:0; }
.campaign-story { scroll-margin-top:150px; }
.campaign-story + .campaign-story { margin-top:clamp(64px,9vw,128px); padding-top:clamp(48px,6vw,88px); border-top:1px solid var(--line); }
.campaign h2 .campaign-subtitle { display:block; margin-top:14px; font-size:.5em; line-height:1.12; letter-spacing:-.015em; }
.campaign-reels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:28px; }
.instagram-reel-shell { position:relative; height:clamp(480px,52vw,700px); overflow:hidden; background:#0b0b0a; }
.instagram-reel { position:absolute; inset:0; display:block; width:100%; height:100%; border:0; background:#0b0b0a; color-scheme:light; opacity:0; pointer-events:none; transition:opacity .18s ease; }
.instagram-reel-shell.is-loaded .instagram-reel { opacity:1; pointer-events:auto; }
.instagram-reel-fallback { position:absolute; inset:0; display:block; color:var(--ink); background:#151513; }
.instagram-reel-fallback img { width:100%; height:100%; object-fit:cover; }
.instagram-reel-fallback::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.25)); }
.instagram-reel-play { position:absolute; z-index:1; top:50%; left:50%; display:grid; width:62px; height:62px; place-items:center; transform:translate(-50%,-50%); border-radius:50%; background:rgba(245,243,238,.94); color:#111; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.instagram-reel-shell.is-loaded .instagram-reel-fallback { visibility:hidden; }
.instagram-card .portfolio-card-meta strong { font-size:clamp(18px,1.8vw,25px); }
.instagram-card .share-link { width:fit-content; }
.campaign-films { display:grid; grid-template-columns:3.16fr 1fr; gap:18px; align-items:start; }
#terrace-film { grid-template-columns:1fr; }
.campaign-film { min-width:0; }
.campaign-film p { font-size:12px; margin:12px 0; color:var(--muted); }
.campaign-reel .film-poster { aspect-ratio:9/16; }
.campaign-stills { margin-top:28px; }
.campaign-stills.is-puzzle { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:start; }
.campaign-still-column { display:flex; min-width:0; flex-direction:column; gap:16px; }
.campaign-stills .portfolio-photo-card { margin:0; overflow:hidden; }
.campaign-stills .portfolio-photo-card img { width:100%; height:auto; object-fit:contain; }
.portfolio-tabs.section-pad { padding-top:24px; padding-bottom:0; }

/* Let the video providers' accessible controls receive taps, seeking and keys. */
.media-dialog.film-viewer .viewer-frame-shell iframe,.inline-reel-shell .inline-reel,.inline-reel-shell iframe { pointer-events:auto; }
.reel-playback-toggle[hidden] { display:none; }
.media-dialog.film-viewer .viewer-frame-shell.is-vertical { aspect-ratio:9/16; width:min(100%,calc((100dvh - 180px) * 9 / 16)); justify-self:center; }
.viewer-player:focus-visible { outline:2px solid var(--paper); outline-offset:-3px; }
.media-dialog.film-viewer .viewer-story h2 { line-height:1.05; }
@media(max-width:900px) {
  .portfolio-tabs.section-pad { position:sticky; top:var(--header-h); z-index:30; padding-top:10px; padding-bottom:10px; background:rgba(11,11,10,.96); backdrop-filter:blur(12px); scroll-margin-top:0; }
  .portfolio-tabs .portfolio-tab { min-width:0; padding:11px 22px; flex:1; }
  .portfolio-panel { scroll-margin-top:140px; }
  .media-dialog.film-viewer .viewer-frame-shell.is-vertical { width:min(75%,calc((100dvh - 260px) * 9 / 16)); }
  .media-dialog.film-viewer .viewer-stage:has(.is-vertical) .viewer-story-heading { min-height:100px; }
  .campaign-stills.is-puzzle { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .campaign-still-column { gap:10px; }
}
@media(max-width:600px) {
  .portfolio-tabs { gap:6px; }
  .portfolio-tabs .portfolio-tab { padding:12px 8px; font-size:12px; }
  .production-options,.campaign-heading { grid-template-columns:1fr; gap:28px; }
  .campaign-heading > p { font-size:15px; }
  .campaign-films { grid-template-columns:1fr; gap:20px; }
  .campaign-reel { width:65%; max-width:280px; justify-self:center; }
  .campaign-reels { grid-template-columns:1fr; gap:28px; }
  .instagram-reel-shell { height:650px; }
  .campaign-stills.is-puzzle { grid-template-columns:1fr; gap:10px; }
  .portfolio-film-card.is-vertical .film-poster { max-width:none; }
}
@media(prefers-reduced-motion:reduce) {
  .frame-reveal .film-poster { opacity:1; clip-path:none; transition:none; }
  .film-poster img { transition:none; }
}
.line-icon { display:inline-block; width:1em; height:1em; min-width:1em; vertical-align:-.12em; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.glass-control .line-icon,.round-link .line-icon { width:22px; height:22px; }
.hero-start { position:absolute; z-index:5; top:calc(var(--header-h,80px) + 24px); right:var(--gutter,24px); color:#fff; background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.45); border-radius:999px; padding:11px 17px; font:inherit; font-size:12px; cursor:pointer; }
.hero-start[hidden] { display:none; }
@media(prefers-reduced-motion:reduce) {
  .client-story-card,.client-story-front,.client-story-back,.client-story-card.is-open .client-story-back { transition:none; }
}
