/* Commercial portfolio: shared editorial tokens, cinematic footage, five stories. */
.pf-eyebrow { margin: 0 0 20px; font-size: 12px; letter-spacing: .09em; text-transform: uppercase; }
.pf-floating-header { position: absolute; top: max(22px, env(safe-area-inset-top)); right: max(22px, env(safe-area-inset-right)); z-index: 90; color: #fffdf7; text-shadow: 0 1px 4px rgb(0 0 0 / .8), 0 0 18px rgb(0 0 0 / .35); }
.pf-menu-toggle { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; list-style: none; touch-action: manipulation; }
.pf-menu-toggle::-webkit-details-marker { display: none; }
.pf-menu-toggle::marker { content: ''; }
.pf-menu-toggle img { flex-shrink: 0; width: 34px; height: 34px; }
.pf-menu-wordmark { font: 600 22px/1 var(--face); }
.pf-menu-toggle:hover .pf-menu-wordmark { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.pf-menu-toggle:focus-visible, .pf-menu-panel a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.pf-menu-panel { position: absolute; right: 0; top: 100%; width: 240px; max-width: calc(100vw - 44px); max-height: calc(100dvh - 88px); padding: 10px 0 0; overflow-y: auto; overscroll-behavior: contain; background: transparent; border: 0; color: inherit; }
.pf-menu-panel a { display: flex; align-items: center; justify-content: flex-end; min-height: 44px; padding: 8px 0; font-size: 18px; line-height: 1.35; text-align: right; touch-action: manipulation; }
.pf-menu-panel a:hover, .pf-menu-panel a[aria-current] { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.pf-menu-panel .pf-menu-cta { font-weight: 600; }
.pf-menu-panel a:focus-visible { outline-offset: -2px; }
.pf-page .pf-hero { padding: 0; }
.pf-cinema { position: relative; isolation: isolate; width: 100%; height: 100vh; height: 100dvh; overflow: hidden; background: var(--ink); color: #fffdf7; }
.pf-hero-film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pf-cinema::after { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgb(0 0 0 / .38), transparent 32%, transparent 52%, rgb(0 0 0 / .65)); }
.pf-hero-description { position: absolute; z-index: 2; top: max(30px, env(safe-area-inset-top)); left: max(var(--gutter), env(safe-area-inset-left)); max-width: calc(100% - 310px); margin: 0; font-size: 16px; line-height: 1.55; text-shadow: 0 1px 6px rgb(0 0 0 / .55); }
.pf-hero-message { position: absolute; z-index: 2; left: max(var(--gutter), env(safe-area-inset-left)); right: max(96px, env(safe-area-inset-right)); bottom: max(36px, env(safe-area-inset-bottom)); display: flex; align-items: flex-end; gap: 42px; }
.pf-hero-message h1 { margin: 0; max-width: 700px; font-size: clamp(44px, 5.2vw, 76px); font-weight: 400; line-height: 1.04; letter-spacing: -.025em; text-wrap: balance; text-shadow: 0 2px 12px rgb(0 0 0 / .25); }
.pf-hero-enquiry { flex-shrink: 0; margin-bottom: 4px; font-size: 16px; }
.pf-cinema .pf-preview-icon { z-index: 2; border: 0; }
.pf-preview-toggle { min-height: 44px; padding: 8px 12px; border: 1px solid rgb(255 255 255 / .5); border-radius: 2px; background: rgb(0 0 0 / .62); color: #fffdf7; font: 13px var(--face); cursor: pointer; }
.pf-preview-toggle:hover { background: rgb(0 0 0 / .85); }
.pf-cinema .pf-preview-icon { position: absolute; right: 34px; bottom: 36px; display: inline-grid; place-items: center; width: 44px; height: 44px; padding: 0; }
.pf-preview-icon[hidden] { display: none; }
.pf-preview-icon svg { grid-area: 1 / 1; }
.pf-preview-icon .pf-play-icon, .pf-preview-icon[data-state="paused"] .pf-pause-icon { display: none; }
.pf-preview-icon[data-state="paused"] .pf-play-icon { display: block; }
.pf-cinema :focus-visible, .pf-case-media :focus-visible { outline: 2px solid #fffdf7; outline-offset: 4px; }
.pf-ribbon { padding: 22px var(--gutter); border-bottom: 1px solid var(--edge); }
.pf-ribbon .vv-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; font-size: 14px; }
.pf-ribbon i { padding-inline: 10px; color: var(--ink-quiet); }
.pf-ribbon a { color: var(--light); }
.pf-offer-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 80px; }
.pf-offer h2 { line-height: 1.15; }
.pf-offer h2 span { color: var(--light); }
.pf-offer-grid > div:last-child { padding-top: 34px; }
.pf-offer-grid .pf-offer-lede { font: 28px/1.3 var(--editorial-face); }
.pf-offer-grid p { font-size: 17px; }
.pf-service-lines { margin-top: 28px; }
.pf-service-lines li { display: flex; justify-content: space-between; gap: 24px; padding-block: 14px; border-top: 1px solid var(--edge-strong); font-size: 16px; }
.pf-service-lines li span:last-child { color: var(--light); }
.pf-work { background: var(--room-raised); }
.pf-work-heading { margin-bottom: 44px; }
.pf-work-heading .pf-eyebrow { margin-bottom: 16px; }
.pf-work-heading .vv-h2 { max-width: none; }
.pf-work-heading > p:last-child { margin: 16px 0 0; color: var(--ink-quiet); font-size: 17px; }
.pf-case { display: grid; grid-template-columns: 1.85fr 1fr; gap: 42px; align-items: center; }
.pf-case + .pf-case { margin-top: 60px; padding-top: 60px; border-top: 1px solid var(--edge-strong); }
.pf-case-sports, .pf-case-effects { grid-template-columns: 1fr 1.85fr; }
.pf-case-media { position: relative; min-width: 0; background: var(--well); }
.pf-case-media > a { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; }
.pf-case-media > a::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(transparent 70%, rgb(0 0 0 / .5)); }
.pf-case-media video { width: 100%; height: 100%; object-fit: cover; }
.pf-landscape, .pf-landscape > a { aspect-ratio: 16/9; }
.pf-portrait, .pf-portrait > a { aspect-ratio: 9/16; }
.pf-watch { position: absolute; bottom: 16px; left: 16px; z-index: 1; display: inline-flex; align-items: center; gap: 28px; min-height: 44px; padding: 9px 14px; background: var(--room); color: var(--ink); font-size: 15px; }
.pf-watch span { color: var(--light); }
.pf-case-media a:hover .pf-watch { background: var(--room-raised); }
.pf-case-media .pf-preview-toggle { position: absolute; z-index: 2; right: 16px; bottom: 16px; }
.pf-case-copy { min-width: 0; }
.pf-case-label { margin: 0 0 20px; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-quiet); }
.pf-case-copy h3 { font-size: clamp(30px, 3.1vw, 43px); line-height: 1.08; text-wrap: initial; margin-bottom: 22px; }
.pf-case-copy > p:not(.pf-case-label) { font-size: 16px; line-height: 1.6; }
.pf-case-details { margin: 28px 0 0; }
.pf-case-details div { padding-block: 11px; border-top: 1px solid var(--edge); }
.pf-case-details dt { font-size: 12px; color: var(--ink-quiet); }
.pf-case-details dd { margin: 2px 0 0; font-size: 14px; line-height: 1.45; }
.pf-case-nepal { grid-template-columns: 1fr 1.85fr; }
.pf-nepal-stage { padding: 24px; background: var(--room-deep); border: 1px solid var(--edge); }
.pf-nepal-stage .pf-case-media { max-width: 340px; margin-inline: auto; }
.pf-case-copy .pf-result { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--edge-strong); }
.pf-result strong { display: block; color: var(--light); font: 48px/1.1 var(--editorial-face); }
.pf-result span { display: block; margin-top: 10px; font-size: 16px; }
.pf-case-product { grid-template-columns: 1.85fr 1fr; }
:is(.pf-product-stage, .pf-effects-stage) { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 26px; background: var(--room-deep); border: 1px solid var(--edge); }
:is(.pf-product-stage, .pf-effects-stage) .pf-case-media:nth-child(2) { margin-top: 44px; }
:is(.pf-product-stage, .pf-effects-stage) .pf-preview-toggle { right: 10px; bottom: 10px; font-size: 12px; padding-inline: 8px; }
:is(.pf-product-stage, .pf-effects-stage) .pf-watch { left: 10px; bottom: 62px; font-size: 14px; gap: 22px; }
.pf-approach { background: var(--room-deep); }
.pf-process-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; }
.pf-process-heading > p { margin: 0; color: var(--ink-quiet); font-size: 16px; }
.pf-process { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 38px; margin-top: 42px; }
.pf-process li { border-top: 1px solid var(--edge-strong); padding-top: 20px; }
.pf-step { color: var(--light); font: 13px ui-monospace, monospace; }
.pf-process h3 { margin: 20px 0 14px; font-size: 30px; }
.pf-process p { margin: 0; font-size: 16px; color: var(--ink-quiet); }
.pf-maker { display: flex; align-items: center; gap: 24px; margin-top: 50px; padding-top: 32px; border-top: 1px solid var(--edge-strong); }
.pf-maker img { width: 80px; height: 80px; object-fit: cover; filter: grayscale(1); flex-shrink: 0; }
.pf-maker p { margin: 0 0 3px; font-size: 17px; }
.pf-maker span { font-size: 14px; color: var(--ink-quiet); }
.pf-maker > a { margin-left: auto; flex-shrink: 0; }
.pf-text-link { display: inline-flex; align-items: center; gap: 22px; min-height: 44px; font-size: 15px; border-bottom: 1px solid var(--edge-strong); }
.pf-text-link:hover { color: var(--light); border-color: var(--light); }
.pf-contact-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 70px; align-items: end; }
.pf-contact h2 { font-size: clamp(36px, 4.2vw, 56px); line-height: 1.08; text-wrap: initial; }
.pf-contact h2 span { color: var(--light); }
.pf-contact h2 + p { margin: 25px 0 0; font-size: 17px; }
.pf-contact-links { display: grid; gap: 10px; }
.pf-contact-option { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 54px; padding: 12px 16px; border: 1px solid var(--edge-strong); border-radius: 2px; background: var(--room-raised); font-size: 16px; line-height: 1.3; }
.pf-contact-option:hover { background: var(--room-deep); border-color: var(--light); }
.pf-contact-option:focus-visible { outline: 2px solid var(--light); outline-offset: 3px; }
.pf-contact-option > img, .pf-contact-option .vv-social-icon { flex-shrink: 0; width: 20px; height: 20px; color: var(--light); }
.pf-contact-arrow { margin-left: auto; color: var(--light); }
.pf-contact-links > p { margin: 8px 0 0; font-size: 14px; color: var(--ink-quiet); }
.pf-film-dialog { width: min(1100px, calc(100% - 32px)); max-height: calc(100dvh - 32px); padding: 24px; border: 1px solid var(--edge-strong); background: var(--room); color: var(--ink); overflow: auto; }
.pf-film-dialog::backdrop { background: rgb(18 22 18 / .88); }
.pf-dialog-heading { display: flex; justify-content: space-between; gap: 24px; align-items: start; margin-bottom: 20px; }
.pf-dialog-heading .pf-eyebrow { margin-bottom: 7px; }
.pf-dialog-heading h2 { font-size: 30px; }
.pf-dialog-close { flex-shrink: 0; min-height: 44px; padding: 8px 14px; border: 1px solid var(--edge-strong); background: transparent; color: var(--ink); font: 15px var(--face); cursor: pointer; }
.pf-dialog-close span { padding-left: 8px; font-size: 20px; }
.pf-film-player { width: 100%; height: min(65dvh, 650px); background: #111; object-fit: contain; }
.pf-film-dialog > p { margin: 16px 0 0; max-width: none; font: 15px/1.5 var(--face); }
.pf-film-error a { text-decoration: underline; }
.pf-page.pf-film-open { overflow: hidden; }
@media (max-width: 949px) {
  .pf-offer-grid { gap: 40px; }
  .pf-case, .pf-case-sports, .pf-case-nepal, .pf-case-product { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .pf-case-sports .pf-case-media, .pf-case-effects .pf-effects-stage { grid-row: 1; }
  .pf-case-copy h3 br { display: none; }
  .pf-case-copy > p:not(.pf-case-label) { max-width: 65ch; }
  .pf-case-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
  :is(.pf-product-stage, .pf-effects-stage) { max-width: 620px; }
  .pf-nepal-stage { max-width: 390px; }
  .pf-process { gap: 24px; }
  .pf-maker { flex-wrap: wrap; }
  .pf-maker > a { margin-left: 104px; }
  .pf-contact-grid { gap: 40px; }
}
@media (min-width: 699px) and (max-width: 949px) {
  .pf-hero-message { flex-direction: column; align-items: flex-start; gap: 24px; }
}
@media (max-width: 698px) {
  .pf-menu-wordmark { font-size: 20px; }
  .pf-hero-film { object-position: 55% center; }
  .pf-hero-description { top: max(22px, env(safe-area-inset-top)); max-width: calc(100% - 44px); font-size: 13px; line-height: 1.5; }
  .pf-hero-description .pf-hero-service { display: inline; }
  .pf-hero-description .pf-hero-service:nth-child(3) { display: block; }
  .pf-hero-description br { display: none; }
  .pf-hero-description .pf-hero-scope { display: block; text-wrap: initial; }
  .pf-menu-panel { padding-top: 30px; }
  .pf-hero-message { right: max(22px, env(safe-area-inset-right)); bottom: max(22px, env(safe-area-inset-bottom)); flex-direction: column; align-items: flex-start; gap: 20px; }
  .pf-hero-message h1 { font-size: clamp(38px, 11.3vw, 54px); max-width: 480px; }
  .pf-hero-enquiry { max-width: calc(100% - 66px); min-height: 48px; padding: 12px 18px; margin: 0; font-size: 15px; }
  .pf-cinema .pf-preview-icon { right: 22px; bottom: max(22px, env(safe-area-inset-bottom)); }
  .pf-ribbon { padding-block: 18px; }
  .pf-ribbon .vv-inner { font-size: 13px; }
  .pf-ribbon i { padding-inline: 5px; }
  .pf-offer-grid, .pf-contact-grid { grid-template-columns: 1fr; gap: 28px; }
  .pf-offer-grid > div:last-child { padding-top: 0; }
  .pf-offer-grid .pf-offer-lede { font-size: 26px; }
  .pf-case + .pf-case { margin-top: 42px; padding-top: 42px; }
  .pf-case-copy h3 { font-size: 36px; }
  .pf-case-details { grid-template-columns: 1fr; gap: 0; margin-top: 20px; }
  .pf-case-details div { display: grid; grid-template-columns: 70px 1fr; gap: 12px; }
  .pf-case-details dd { margin: 0; }
  .pf-case-media .pf-preview-toggle { right: 10px; bottom: 10px; padding-inline: 9px; font-size: 12px; }
  .pf-watch { left: 10px; bottom: 10px; font-size: 14px; gap: 16px; padding: 9px 12px; }
  :is(.pf-product-stage, .pf-effects-stage) { padding: 12px; gap: 12px; }
  .pf-nepal-stage { padding: 12px; }
  :is(.pf-product-stage, .pf-effects-stage) .pf-case-media:nth-child(2) { margin-top: 28px; }
  :is(.pf-product-stage, .pf-effects-stage) .pf-watch { left: 8px; bottom: 58px; gap: 14px; padding: 8px; font-size: 13px; }
  :is(.pf-product-stage, .pf-effects-stage) .pf-preview-toggle { right: 8px; bottom: 8px; padding-inline: 7px; font-size: 11px; }
  .pf-process-heading { display: block; }
  .pf-process-heading > p { margin-top: 22px; }
  .pf-process { grid-template-columns: 1fr; gap: 28px; margin-top: 32px; }
  .pf-process h3 { margin-top: 10px; }
  .pf-maker { align-items: start; gap: 18px; margin-top: 34px; }
  .pf-maker img { width: 64px; height: 64px; }
  .pf-maker > div { flex: 1; min-width: 0; }
  .pf-maker > a { margin-left: 82px; flex-shrink: 1; }
  .pf-maker span { display: block; }
  .pf-contact-option { font-size: 15px; }
  .pf-film-dialog { padding: 16px; }
  .pf-dialog-heading { gap: 12px; }
  .pf-dialog-heading h2 { font-size: 25px; }
  .pf-dialog-heading .pf-eyebrow { font-size: 10px; }
}
@media (max-width: 389px) {
  .pf-menu-wordmark { font-size: 16px; }
  .pf-menu-toggle { gap: 8px; }
  .pf-menu-toggle img { width: 28px; height: 28px; }
}
@media (max-width: 360px) {
  .pf-hero-description { font-size: 12px; }
  .pf-menu-wordmark { font-size: 13px; }
  .pf-menu-toggle { gap: 4px; }
  .pf-menu-toggle img { width: 24px; height: 24px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (max-height: 560px) {
  .pf-page:has(.pf-site-menu[open]) .pf-hero-message { visibility: hidden; }
}

.pf-case-copy .pf-proof-note { margin-top: 12px; font-size: 13px; color: var(--ink-quiet); }
.pf-proof-note a { text-decoration: underline; text-underline-offset: 3px; }

/* Transformation films retain the native 768 × 1344 canvas. */
.pf-effects-frame, .pf-effects-frame > a { aspect-ratio: 4/7; }
.pf-effect-name { position: absolute; top: 10px; left: 10px; right: 10px; width: fit-content; padding: 5px 9px; background: var(--room); color: var(--ink); font-size: 13px; line-height: 1.3; }
