/* Shared navigation and project pages — the same flat pixel world, opened out. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:#111;color:#fff;padding:12px 18px}.skip-link:focus{top:12px}
#page-content{outline:none}
.site-header{mix-blend-mode:normal;background:#fff;min-height:70px;padding-block:12px;border-bottom:1px solid #eaeaea}
.site-header a{display:inline-flex;min-height:44px;align-items:center;font-size:14px;letter-spacing:.12em}
.site-header a[aria-current]{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:8px;text-decoration-color:var(--pink)}
a:focus-visible{outline:3px solid #111;outline-offset:5px}
.card{text-decoration:none;min-width:0}
.card>div:last-child{grid-template-columns:1fr;gap:12px}
.card h2,.card span{grid-column:1;overflow-wrap:anywhere}
.card h2{font-size:clamp(32px,4.2vw,66px);letter-spacing:-.06em;line-height:1.02;text-shadow:none}
.card p,.card span{font-size:14px;line-height:1.5}
.carousel{touch-action:pan-x pan-y;scroll-behavior:smooth}
.carousel:active{scroll-behavior:auto;scroll-snap-type:none}
.card:focus-visible{outline:4px solid var(--accent);outline-offset:-6px}
.project-nodes .node{font-size:clamp(12px,1.1vw,16px);min-height:44px;line-height:1.15}
.project-nodes .node:focus-visible{filter:brightness(.65);text-decoration:underline}

.project-page,.project-directory{--project-accent:var(--pink);background:#fff;padding:110px max(5vw,20px) 0;min-height:100vh}
.project-page>*{max-width:1400px;margin-inline:auto}
.project-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:54px;font:14px 'Courier New',monospace}
.back-link,.return-link{color:#333;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;gap:12px;font-size:14px}
.back-link:hover,.return-link:hover{text-decoration:underline;text-underline-offset:5px}
.project-kicker{font:700 14px/1.5 'Courier New',monospace;letter-spacing:.08em;text-transform:uppercase;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.project-kicker i{width:13px;height:13px;display:inline-block;background:var(--project-accent);box-shadow:6px -6px 0 var(--project-accent);margin-right:8px}
.project-heading{position:relative;padding-bottom:40px;max-width:1150px}
.project-heading h1{font:900 clamp(40px,7.5vw,114px)/.94 'Courier New',monospace;letter-spacing:-.07em;margin:28px 0 24px;max-width:14ch;text-transform:uppercase;overflow-wrap:anywhere;text-wrap:balance}
.project-byline{font-size:16px;line-height:1.6;margin:0;color:#555}
.project-cover{position:relative;margin:0 0 100px;border-top:12px solid var(--project-accent)}
.project-cover:after{content:'';width:34px;height:34px;position:absolute;right:0;top:-12px;background:#fff;clip-path:polygon(50% 0,100% 0,100% 100%,0 100%,0 50%,50% 50%)}
.project-photo{position:relative;width:100%;aspect-ratio:var(--photo-ratio,1.5);overflow:hidden;background:#111}
.project-photo img{position:absolute;display:block;left:0;top:0;width:100%;height:var(--photo-height,100%);max-width:none;object-fit:fill}
.project-cover .project-photo{max-height:none}
figcaption{display:flex;justify-content:space-between;gap:20px;font:12px/1.5 'Courier New',monospace;text-transform:uppercase;letter-spacing:.04em;padding-top:14px;color:#666}
.project-story{display:grid;grid-template-columns:1fr 1.65fr;gap:9vw;margin-bottom:90px}
.story-label h2{font:900 clamp(27px,3vw,44px)/1.03 'Courier New',monospace;letter-spacing:-.05em;margin:22px 0}
.story-label h2 span{display:block;color:var(--project-accent);font-size:25px;margin-top:22px}
.synopsis p{font-size:18px;line-height:1.85;margin:0 0 24px;color:#484848;max-width:65ch}
.synopsis .synopsis-lead{font-size:clamp(23px,2.4vw,34px);color:#111;line-height:1.45;margin-bottom:32px;letter-spacing:-.025em}
.project-credits{border-top:1px solid #bbb;padding-top:28px;margin-bottom:90px;display:grid;grid-template-columns:1fr 1.65fr;gap:9vw}
.project-credits h2,.gallery-heading h2{font:900 clamp(23px,2.2vw,32px)/1.1 'Courier New',monospace;letter-spacing:-.04em;margin:0}
.project-credits dl{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin:0}
.project-credits dt{font:700 13px/1.5 'Courier New',monospace;text-transform:uppercase;color:#777;letter-spacing:.04em;margin-bottom:9px}
.project-credits dd{margin:0;font-size:17px;line-height:1.7}
.project-credits ul{list-style:none;margin:0;padding:0}
.cast-list{grid-column:1/-1}
.cast-list ul{columns:2;column-gap:32px}
.cast-list li{break-inside:avoid;margin-bottom:5px}
.project-gallery{margin-bottom:100px}
.gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:36px;border-top:1px solid #bbb;padding-top:28px}
.gallery-heading>span{font:13px 'Courier New',monospace;color:#666}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.gallery-grid figure{margin:0;min-width:0}
.gallery-grid figure:nth-child(2){margin-top:88px}
.gallery-grid figure:only-child{grid-column:1/-1;max-width:1000px}
.project-footer-nav{border-top:1px solid #111;padding:32px 0 70px;display:grid;grid-template-columns:1fr 1.65fr;gap:9vw;align-items:start}
.next-project{color:#111;text-decoration:none;border-left:9px solid var(--project-accent);padding:10px 0 10px 25px;transition:padding-left .25s}
.next-project small{display:block;font:13px 'Courier New',monospace;text-transform:uppercase;margin-bottom:16px}
.next-project>span{font:900 clamp(24px,3vw,46px)/1.05 'Courier New',monospace;letter-spacing:-.04em;text-transform:uppercase;display:block}
.next-project b{font-weight:400;color:var(--project-accent)}
.next-project:hover{padding-left:40px}

.project-directory{padding-top:145px;padding-bottom:65px}
.directory-heading,.directory-grid,.directory-back{max-width:1450px;margin-inline:auto}
.directory-heading h1{font:900 clamp(48px,9vw,130px)/1 'Courier New',monospace;text-transform:uppercase;letter-spacing:-.07em;margin:28px 0 75px}
.directory-heading h1 span{color:var(--pink);font-size:.35em;vertical-align:top;margin-left:15px}
.directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.directory-project{color:#111;text-decoration:none;display:flex;flex-direction:column;align-items:start;min-width:0}
.directory-image{position:relative;width:100%;border-bottom:9px solid var(--project-accent);margin-bottom:14px;overflow:hidden}
.directory-image .project-photo{transition:transform .5s cubic-bezier(.2,.75,.2,1)}
.project-number{position:absolute;top:0;right:0;font:700 15px 'Courier New',monospace;background:var(--project-accent);padding:16px;color:#111}
.directory-project h2{font:900 clamp(25px,2.5vw,38px)/1.05 'Courier New',monospace;text-transform:uppercase;letter-spacing:-.06em;margin:8px 0 20px;overflow-wrap:anywhere}
.directory-project h2 span{color:var(--project-accent)}
.directory-excerpt{font-size:16px;line-height:1.7;color:#555;margin:0 0 30px}
.open-project{margin-top:auto;min-height:44px;display:flex;align-items:center;font:700 14px 'Courier New',monospace;text-transform:uppercase;border-bottom:3px solid var(--project-accent)}
.directory-project:hover .project-photo{transform:scale(1.035)}
.directory-back{display:flex;margin-top:90px}

/* The clicked pixel becomes a field, then breaks open onto the selected production. */
.pixel-transition{position:fixed;inset:0;z-index:90;pointer-events:all;overflow:hidden;contain:strict}
.transition-tile{position:absolute;display:block;background:var(--transition-color);transform:scale(0);will-change:transform}
html.is-navigating{scroll-behavior:auto!important}
html.is-navigating body{cursor:progress}
[data-reveal]{--reveal:1;opacity:var(--reveal)}
@media(max-width:1000px){.directory-grid{grid-template-columns:1fr 1fr}.directory-project:last-child{grid-column:1/-1;max-width:650px}.project-story,.project-credits,.project-footer-nav{gap:5vw;grid-template-columns:1fr 2fr}.project-heading h1{font-size:clamp(40px,8vw,88px)}}
@media(max-width:640px){
  .site-header{padding:9px 16px;min-height:62px}.site-header nav{gap:13px}.site-header nav a,.site-header a{font-size:12px;letter-spacing:.045em}
  .project-page,.project-directory{padding:87px 20px 0}.project-topline{margin-bottom:30px}
  .project-heading h1{font-size:clamp(34px,8.8vw,58px);margin-top:22px;letter-spacing:-.065em}.project-heading{padding-bottom:28px}.project-byline{font-size:14px}
  .project-cover{margin-bottom:52px;border-top-width:8px}.project-cover:after{top:-8px;width:24px;height:24px}
  .project-story,.project-credits,.project-footer-nav{grid-template-columns:1fr;gap:20px;margin-bottom:50px}
  .story-label h2 br{display:none}.story-label h2 span{display:inline;margin-left:12px}.story-label h2{margin:12px 0}
  .synopsis p{font-size:16px;line-height:1.8}.synopsis .synopsis-lead{font-size:23px;margin-bottom:24px}
  .project-credits dl{gap:24px}.project-credits dd{font-size:16px}.cast-list ul{columns:1}
  .gallery-grid{grid-template-columns:1fr;gap:32px}.gallery-grid figure:nth-child(2){margin-top:0}.project-gallery{margin-bottom:55px}
  .gallery-heading{margin-bottom:24px}.gallery-heading h2{font-size:25px}.project-footer-nav{padding-bottom:50px;margin-bottom:0}
  .next-project{margin-top:18px}.next-project>span{font-size:28px}.return-link{font-size:14px}
  .directory-grid{grid-template-columns:1fr;gap:54px}.directory-project:last-child{grid-column:auto}.directory-heading h1{font-size:clamp(38px,10vw,65px);margin:22px 0 38px}.directory-project h2{font-size:30px}.directory-back{margin-top:55px;padding-bottom:45px}
  .project-kicker{font-size:12px}.project-cover figcaption,.gallery-grid figcaption{font-size:12px}.project-nodes .node{max-width:145px}
}
@media(prefers-reduced-motion:reduce){.pixel-transition{display:none}.directory-image .project-photo,.next-project{transition:none!important}.project-cover,[data-reveal]{animation:none!important;transform:none!important}}
