/* Loaded only by the full-screen PLF template. */
html { margin-top: 0 !important; }
body.plfx-fullscreen-page { margin: 0; padding: 0; max-width: none; }
body.plfx-fullscreen-page > main { margin: 0; padding: 0; max-width: none; }
body.plfx-fullscreen-page .wp-site-blocks { padding: 0; }

/* Only the native CF7 form inside the approved contact dialog. */
#contact-dialog .wpcf7 { margin:0; }
#contact-dialog .wpcf7-form-control-wrap { display:block;min-width:0;width:100%; }
#contact-dialog .wpcf7-not-valid-tip { margin-top:8px;color:var(--color-text-warm);font-size:12px;line-height:1.7; }
#contact-dialog .wpcf7-spinner { flex:none;margin:0 4px;width:20px;height:20px; }
#contact-dialog .plfx-cf7-ready .wpcf7-response-output { display:none; }
#contact-dialog .wpcf7-form input[type="submit"] { cursor:pointer;border-radius:0;-webkit-appearance:none;appearance:none; }
#contact-dialog .wpcf7-form input[type="submit"]:disabled { cursor:default; }
#contact-dialog .wpcf7 .screen-reader-response { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }


/* 0.9.3: shared chapter edges, without enlarging the label's cast portraits. */
body.plfx-fullscreen-page { --plfx-page-gutter:6vw; }
#releases,#contact { padding-inline:var(--plfx-page-gutter);scroll-margin-top:0; }
#releases .release-section-heading,#releases .release-grid { width:100%;max-width:none; }
#contact .contact-inner { width:100%;max-width:none; }
#contact .contact-rule { left:var(--plfx-page-gutter);right:var(--plfx-page-gutter); }
#label .credits-roll { width:calc(100% - var(--plfx-page-gutter) * 2); }
html.cinema-snap-enabled #releases { scroll-snap-align:start;scroll-snap-stop:normal; }
#contact-dialog .wpcf7-turnstile { max-width:100%;margin:0 0 24px; }
/* A horizontal Turnstile needs 300 px. Reserve that width even at 320 px. */
@media(max-width:380px) {
 #contact-dialog { width:calc(100vw - 16px); }
 #contact-dialog .contact-dialog-header { padding-inline:14px; }
 #contact-dialog .contact-dialog-body { padding:20px 14px 24px; }
}
@media(max-width:360px) {
 #contact-dialog { width:100%;border-inline:0; }
 #contact-dialog .contact-dialog-header { padding-inline:10px; }
 #contact-dialog .contact-dialog-body { padding-inline:clamp(0px,calc((100vw - 330px)/2),15px); }
}
@media(min-width:381px) and (max-width:600px) {
 #contact-dialog { width:calc(100vw - 24px); }
 #contact-dialog .contact-dialog-body { padding-inline:20px; }
}
@media(prefers-reduced-motion:reduce) {
 html.cinema-snap-enabled:not(:has(body.motion-full)) #releases { scroll-snap-align:none; }
}
body.motion-reduced #releases { scroll-snap-align:none; }

/* 0.9.4: a wide label spread, studio invitation, and aligned closing colophon. */
#label { height:auto;scroll-margin-top:0; }
#label .cinema-sticky { position:relative;top:auto;height:auto;min-height:0;overflow:hidden;padding:136px 0 60px; }
#label .cinema-frame-top { left:var(--plfx-page-gutter);right:var(--plfx-page-gutter);top:36px; }
#label .credits-roll {
 position:relative;left:auto;top:auto;transform:none;margin:0 auto;padding:0;
 display:grid;grid-template-columns:minmax(0,1fr) minmax(600px,650px);
 grid-template-areas:"opening dancers" "artists dancers" "genres genres";
 gap:42px clamp(48px,7vw,120px);text-align:left;will-change:auto;
}
#label .credits-opening { grid-area:opening;padding:0;align-self:end; }
#label .credits-opening .cinema-kicker:empty { display:none; }
#label .credits-opening .cinema-title { margin:0 0 26px; }
#label .credits-opening .plf-logo { width:clamp(220px,19vw,290px);max-width:100%;margin:0; }
#label .label-description { max-width:32ch;margin:0;font-size:clamp(16px,1.3vw,20px);text-wrap:balance; }
#label .credit-group { width:100%;max-width:none;margin:0;padding:0;border:0; }
#label .credit-group:not(.cast-block):not(.credits-genres) { grid-area:artists;align-self:start;padding-top:30px;border-top:1px solid var(--color-border-warm); }
#label .credit-heading { margin:0 0 22px;font-size:11px; }
#label .credit-line { align-items:flex-start;padding:0 0 20px;gap:6px; }
#label .credit-line:last-child { padding-bottom:0; }
#label .credit-line>span { font-size:clamp(28px,3vw,44px); }
#label .credit-line button { padding:0;text-align:left; }
#label .cast-block { grid-area:dancers;max-width:650px;justify-self:end; }
#label .cast-title { display:none; }
#label .credit-cast-grid { max-width:650px;margin:0 auto; }
#label .cast-block>p { text-align:center;margin:26px 0 0; }
#label .credits-genres { grid-area:genres;display:flex;align-items:baseline;gap:42px;padding-top:30px;border-top:1px solid var(--color-border-warm); }
#label .credits-genres .credit-heading { flex:none;margin:0; }
#label .credits-genres .genres { justify-content:flex-start;max-width:none;margin:0;gap:16px 28px; }
#label .credits-vignette { display:none; }

#contact { padding-top:clamp(74px,7vw,118px);padding-bottom:clamp(60px,6vw,100px); }
#contact .contact-inner { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.94fr);column-gap:6vw;align-items:start; }
#contact .contact-inner>.eyebrow { grid-column:1 / -1;margin-bottom:36px; }
#contact .contact-inner h2 { grid-column:1;grid-row:2;font-size:clamp(44px,5.6vw,96px);line-height:1.02;margin-bottom:32px; }
#contact .contact-inner h2 span { font-size:.8em;white-space:nowrap; }
#contact .contact-invitation { grid-column:1;grid-row:3;display:flex;flex-direction:column;align-items:stretch;gap:30px;margin:0; }
#contact .contact-description { padding:0;line-height:2; }
#contact .contact-link { width:100%;max-width:490px;min-height:76px;font-size:clamp(24px,2.3vw,32px); }
#contact .contact-inner::after {
 content:"";grid-column:2;grid-row:2 / 4;align-self:stretch;min-height:340px;
 background:linear-gradient(180deg,rgba(8,9,10,.04),rgba(8,9,10,.08) 66%,rgba(8,9,10,.72)),
 url("../experience/assets/studio-approved.webp") 49% 48% / cover no-repeat;
 border-top:1px solid var(--color-border-warm);
}

body.plfx-fullscreen-page .site-footer.section-wrap { padding:0 var(--plfx-page-gutter) 28px; }
body.plfx-fullscreen-page .site-footer .footer-main {
 display:grid;grid-template-columns:minmax(150px,1fr) auto;align-items:center;gap:50px;
 padding:38px 0 32px;border-top:1px solid var(--color-border-warm);
}
body.plfx-fullscreen-page .site-footer .footer-mark { width:158px;justify-self:start; }
body.plfx-fullscreen-page .site-footer .footer-links { display:grid;grid-template-columns:repeat(4,auto);gap:clamp(24px,3.2vw,64px);width:auto; }
body.plfx-fullscreen-page .site-footer .footer-links a { justify-content:flex-start;min-height:44px;font-size:14px;letter-spacing:.045em; }
body.plfx-fullscreen-page .site-footer .footer-signature { padding:23px 0 0;border-top:1px solid var(--color-border);text-align:center;font-size:10px;letter-spacing:.08em; }

@media(max-width:1180px) {
 #label .cinema-sticky { padding-top:112px; }
 #label .credits-roll { grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"opening artists" "dancers dancers" "genres genres";gap:46px 42px; }
 #label .credits-opening { align-self:start; }
 #label .credit-group:not(.cast-block):not(.credits-genres) { border:0;padding:8px 0 0; }
 #label .cast-block { justify-self:center;max-width:650px;border-top:1px solid var(--color-border-warm);padding-top:32px; }
 #label .credits-genres { gap:26px; }
 #contact .contact-inner { column-gap:4vw; }
 #contact .contact-inner::after { min-height:330px; }
 body.plfx-fullscreen-page .site-footer.section-wrap { padding-bottom:78px; }
 body.plfx-fullscreen-page .site-footer .footer-main { gap:28px; }
 body.plfx-fullscreen-page .site-footer .footer-links { gap:22px; }
 body.plfx-fullscreen-page .site-footer .footer-links a { font-size:12px; }
}
@media(max-width:700px) {
 #label .cinema-sticky { padding-top:102px;padding-bottom:44px; }
 #label .credits-roll { grid-template-columns:minmax(0,1fr);grid-template-areas:"opening" "artists" "dancers" "genres";gap:34px; }
 #label .credits-opening .plf-logo { width:190px; }
 #label .credits-opening .cinema-title { margin-bottom:20px; }
 #label .label-description { font-size:15px; }
 #label .credit-group:not(.cast-block):not(.credits-genres) { padding-top:28px;border-top:1px solid var(--color-border-warm); }
 #label .credit-line>span { font-size:30px; }
 #label .credits-genres { display:block;padding-top:28px; }
 #label .credits-genres .credit-heading { margin-bottom:20px; }
 #label .credits-genres .genres { gap:14px 20px; }
 #contact { padding-top:56px;padding-bottom:52px; }
 #contact .contact-inner { grid-template-columns:minmax(0,1fr); }
 #contact .contact-inner>.eyebrow { margin-bottom:28px; }
 #contact .contact-inner h2 { font-size:clamp(42px,11.7vw,70px);margin-bottom:28px; }
 #contact .contact-invitation { gap:18px; }
 #contact .contact-description { font-size:13px; }
 #contact .contact-link { max-width:none;font-size:25px; }
 #contact .contact-inner::after { grid-column:1;grid-row:4;min-height:0;aspect-ratio:1.85;margin-top:32px;background-position:50% 44%; }
 body.plfx-fullscreen-page .site-footer .footer-main { grid-template-columns:1fr;justify-items:start;gap:24px;padding:28px 0; }
 body.plfx-fullscreen-page .site-footer .footer-mark { width:122px; }
 body.plfx-fullscreen-page .site-footer .footer-links { width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px; }
 body.plfx-fullscreen-page .site-footer .footer-links a { font-size:12px;padding:5px 0; }
}
@media(prefers-reduced-motion:reduce) {
 #label .cinema-sticky { min-height:0; }
 #label .credits-roll { padding-top:0; }
}

/* 0.9.5: approved horizontal identity and a dedicated contact photograph. */
#label .cast-block > .credit-heading {
 margin:0 0 26px;
}
.plf-horizontal-logo {
 display:block;width:100%;height:auto;aspect-ratio:2010 / 382;
}
body.plfx-fullscreen-page .site-header {
 height:72px;gap:28px;
}
body.plfx-fullscreen-page .site-header .wordmark {
 width:220px;min-height:44px;align-items:center;
}
body.plfx-fullscreen-page .site-header nav {
 position:static;transform:none;margin:0 auto;gap:clamp(18px,2vw,30px);
}
body.plfx-fullscreen-page .site-header > .sound-toggle {
 flex-shrink:0;
}
#contact .contact-inner::after {
 background-image:linear-gradient(180deg,rgba(8,9,10,.02),rgba(8,9,10,.02) 72%,rgba(8,9,10,.45)),
 url("../experience/assets/contact-microphone-095.webp");
 background-position:center,55% 45%;
}
body.plfx-fullscreen-page .site-footer .footer-main {
 grid-template-columns:minmax(220px,1fr) auto;padding:24px 0;gap:36px;
}
body.plfx-fullscreen-page .site-footer .footer-mark {
 width:260px;min-height:44px;display:flex;align-items:center;
}
body.plfx-fullscreen-page .site-footer .footer-signature {
 padding-top:18px;
}
@media(max-width:1100px) and (min-width:761px) {
 body.plfx-fullscreen-page .site-header { gap:18px; }
 body.plfx-fullscreen-page .site-header .wordmark { width:180px; }
 body.plfx-fullscreen-page .site-header nav { gap:18px; }
 body.plfx-fullscreen-page .site-header nav a[href] { font-size:10px;letter-spacing:.04em; }
 body.plfx-fullscreen-page .site-header > .sound-toggle { width:44px;justify-content:center;font-size:0; }
 body.plfx-fullscreen-page .site-header > .sound-toggle .sound-label { display:none; }
}
@media(max-width:760px) {
 body.plfx-fullscreen-page .site-header {
 height:98px;align-items:flex-start;padding:4px 5vw 0;gap:16px;
 }
 body.plfx-fullscreen-page .site-header .wordmark {
 width:190px;height:44px;min-height:44px;
 }
 body.plfx-fullscreen-page .site-header > .sound-toggle { margin:0 0 0 auto; }
 body.plfx-fullscreen-page .site-header nav {
 position:absolute;left:4vw;right:4vw;bottom:2px;margin:0;gap:0;
 display:grid;grid-template-columns:1.2fr 1fr .85fr 1.15fr 1fr;
 }
 body.plfx-fullscreen-page .room-topline { top:118px; }
}
@media(max-width:700px) {
 body.plfx-fullscreen-page .site-footer .footer-main {
 grid-template-columns:1fr;gap:16px;padding:22px 0 18px;
 }
 body.plfx-fullscreen-page .site-footer .footer-mark { width:220px; }
}
@media(max-height:540px) and (min-width:600px) {
 body.plfx-fullscreen-page .site-header { height:64px;align-items:center;padding:0 4.2vw;gap:14px; }
 body.plfx-fullscreen-page .site-header .wordmark { width:160px; }
 body.plfx-fullscreen-page .site-header nav { position:static;display:flex;gap:14px;transform:none;margin:0 auto; }
 body.plfx-fullscreen-page .site-header nav a[href] { font-size:9px;letter-spacing:0; }
 body.plfx-fullscreen-page .site-header > .sound-toggle { margin:0;width:44px;justify-content:center; }
 body.plfx-fullscreen-page .site-header > .sound-toggle .sound-label { display:none; }
 body.plfx-fullscreen-page .room-topline { top:84px; }
}

/* 0.9.6 — let the contact photograph dissolve into the section background. */
#contact .contact-inner::after {
  border-top: 0;
  background-position: center, 55% 0%;
  -webkit-mask-image:
    linear-gradient(90deg, transparent, #000 24%, #000 84%, transparent),
    linear-gradient(180deg, transparent, #000 10%, #000 72%, transparent);
  mask-image:
    linear-gradient(90deg, transparent, #000 24%, #000 84%, transparent),
    linear-gradient(180deg, transparent, #000 10%, #000 72%, transparent);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

/* 0.9.7 — give the contact still life room beyond its softly feathered edges. */
#contact .contact-inner::after {
  transform: scale(1.14);
  transform-origin: 50% 50%;
  pointer-events: none;
  -webkit-mask-image:
    linear-gradient(90deg, transparent, rgba(0,0,0,.12) 5%, rgba(0,0,0,.5) 13%, #000 30%, #000 73%, rgba(0,0,0,.7) 85%, rgba(0,0,0,.15) 95%, transparent),
    linear-gradient(180deg, transparent, rgba(0,0,0,.3) 4%, #000 14%, #000 54%, rgba(0,0,0,.78) 65%, rgba(0,0,0,.35) 80%, rgba(0,0,0,.06) 94%, transparent);
  mask-image:
    linear-gradient(90deg, transparent, rgba(0,0,0,.12) 5%, rgba(0,0,0,.5) 13%, #000 30%, #000 73%, rgba(0,0,0,.7) 85%, rgba(0,0,0,.15) 95%, transparent),
    linear-gradient(180deg, transparent, rgba(0,0,0,.3) 4%, #000 14%, #000 54%, rgba(0,0,0,.78) 65%, rgba(0,0,0,.35) 80%, rgba(0,0,0,.06) 94%, transparent);
}
@media(max-width:700px) {
  #contact .contact-inner::after {
    aspect-ratio: 1.55;
    transform: scale(1.08);
  }
}
@media(min-width:701px) and (max-width:1100px) {
  #contact .contact-inner::after {
    background-position: center, 100% 0%;
  }
}
@media(min-width:761px) {
  body.plfx-fullscreen-page .listening-dock:has(> #dock-expand[aria-expanded="false"]) {
    width: 200px;
  }
}

/* 0.9.9 — approved FUKUOKA wordmark, with its original transparent artwork. */
.plf-horizontal-logo { aspect-ratio:2010 / 522; }
body.plfx-fullscreen-page .site-footer .footer-mark { width:280px;max-width:100%; }
@media(max-width:1100px) and (min-width:761px) {
 body.plfx-fullscreen-page .site-header .wordmark { width:200px; }
}
@media(max-width:760px) {
 body.plfx-fullscreen-page .site-header { height:106px; }
 body.plfx-fullscreen-page .site-header .wordmark { width:200px;height:54px;min-height:54px; }
 body.plfx-fullscreen-page .room-topline { top:126px; }
}
@media(max-width:700px) {
 body.plfx-fullscreen-page .site-footer .footer-mark { width:260px; }
}
@media(max-height:540px) and (min-width:600px) {
 body.plfx-fullscreen-page .site-header { height:64px; }
 body.plfx-fullscreen-page .site-header .wordmark { width:160px;height:44px;min-height:44px; }
 body.plfx-fullscreen-page .room-topline { top:84px; }
}

/* 0.9.10: a readable label introduction, consistent with search metadata. */
#label .label-profile { max-width:44ch;margin:18px 0 0;font-size:14px;line-height:1.95;letter-spacing:.025em;color:var(--color-credits-description);overflow-wrap:anywhere; }
@media(max-width:700px) { #label .label-profile { max-width:none;font-size:13px;margin-top:16px; } }

/* 0.9.11: media-only saving deterrents; form editing and page navigation stay native. */
[data-plf-protected-media] {
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}
