﻿@font-face{
  font-family:'Figtree';
  src:url('../fonts/Figtree-VariableFont_wght.ttf') format('truetype');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Figtree';
  src:url('../fonts/Figtree-Italic-VariableFont_wght.ttf') format('truetype');
  font-weight:100 900;
  font-style:italic;
  font-display:swap;
}
@font-face{
  font-family:'Sora';
  src:url('../fonts/Sora-VariableFont_wght.ttf') format('truetype');
  font-weight:100 800;
  font-style:normal;
  font-display:swap;
}

:root{
    --paper:#ffffff;
    --paper-2:#f4f4f4;
    --ink:#1a1a1a;
    --ink-dim:#5a5a5a;
    --line:rgba(26,26,26,0.12);
    --maxw:1280px;
    --black:#000000;
    --pad:40px;
    --display:'Sora', sans-serif;
  }

  *{margin:0;padding:0;box-sizing:border-box;}
  html{
    scroll-behavior:smooth;
    scrollbar-gutter:stable;
  }
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Figtree', sans-serif;
    font-weight:400;
    line-height:1.55;
    overflow-x:hidden;
  }

  h1,h2,h3,h4{font-family:var(--display); font-weight:500; letter-spacing:-0.02em;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 var(--pad);}
  .fullwidth{ width:100%; padding:0 var(--pad); }

  .ph-img{
    width:100%; height:100%; object-fit:cover; display:block;
  }

  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:34px 0 22px;
    background:transparent;
    transition:padding .3s ease, background .35s ease;
  }
  header.scrolled{
    padding:18px 0;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(10px);
  }
  nav{display:flex; align-items:center; justify-content:space-between;}
  .logo{
    position:relative;
    display:block;
    height:26px;
  }
  .logo img{
    height:26px; display:block;
    transition:opacity .3s ease, height .3s ease;
  }
  .logo .logo-dark{
    position:absolute; top:0; left:0;
    opacity:0;
  }
  .logo .logo-white{ opacity:1; }
  header.scrolled .logo{ height:22px; }
  header.scrolled .logo img{ height:22px; }
  header.scrolled .logo .logo-white{ opacity:0; }
  header.scrolled .logo .logo-dark{ opacity:1; }

  .nav-right{display:flex; align-items:center; gap:28px;}
  .navmeta{
    display:flex; gap:12px; font-size:0.85rem;
    color:rgba(255,255,255,0.72); font-weight:500;
    transition:color .35s ease;
  }
  .navmeta a{ transition:color .2s; }
  .navmeta a:hover{color:#fff;}
  .navmeta a.active{
    color:#fff;
    text-decoration:underline;
    text-decoration-thickness:1.5px;
    text-underline-offset:3px;
    pointer-events:none;
  }
  header.scrolled .navmeta{ color:var(--ink-dim); }
  header.scrolled .navmeta a:hover{ color:var(--ink); }
  header.scrolled .navmeta a.active{ color:var(--ink); }

  .menu-toggle{
    position:relative;
    width:28px; height:18px;
    background:none; border:none; cursor:pointer; padding:0;
  }
  .menu-toggle span{
    position:absolute; left:0; width:100%;
    height:2px;
    background:#fff;
    transition:transform .3s ease, opacity .3s ease, background .35s ease, top .3s ease;
  }
  .menu-toggle span:nth-child(1){ top:0; }
  .menu-toggle span:nth-child(2){ top:8px; }
  .menu-toggle span:nth-child(3){ top:16px; }
  header.scrolled .menu-toggle span{ background:var(--ink); }
  .menu-toggle.open span:nth-child(1){ top:8px; transform:rotate(45deg); }
  .menu-toggle.open span:nth-child(2){ opacity:0; }
  .menu-toggle.open span:nth-child(3){ top:8px; transform:rotate(-45deg); }

  header:has(.menu-toggle.open){
    background:transparent;
  }
  header:has(.menu-toggle.open) .logo .logo-white{ opacity:0; }
  header:has(.menu-toggle.open) .logo .logo-dark{ opacity:1; }
  header:has(.menu-toggle.open) .navmeta{ color:var(--ink-dim); }
  header:has(.menu-toggle.open) .navmeta a:hover,
  header:has(.menu-toggle.open) .navmeta a.active{ color:var(--ink); }
  header:has(.menu-toggle.open) .menu-toggle span{ background:var(--ink); }

  .menu-overlay{
    position:fixed; top:0; left:0; bottom:0; right:0; z-index:99;
    background:rgba(255,255,255,0.97);
    display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden;
    transition:opacity .35s ease, visibility .35s ease;

    width:100%;
    max-width:100%;
  }
  .menu-overlay.open{ opacity:1; visibility:visible; }
  .menu-overlay nav{
    display:flex; flex-direction:column; align-items:center; gap:28px;
  }
  .menu-overlay a{
    font-family:var(--display);
    font-size:clamp(1.8rem, 5vw, 2.8rem);
    font-weight:500; letter-spacing:-0.02em;
    color:var(--ink);
    transition:opacity .2s;
  }
  .menu-overlay a:hover{ opacity:0.45; }

  .hero{
    position:relative; min-height:100vh;
    display:flex; align-items:flex-end;
  }
  .hero-bg{
    position:absolute; inset:0; z-index:0;
    overflow:hidden;
  }
  .hero-bg::before,
  .hero-bg::after{
    content:'';
    position:absolute; left:0; right:0;
    z-index:1;
    pointer-events:none;
  }
  .hero-bg::before{
    top:0; height:48%;
    background:linear-gradient(
      to bottom,
      rgba(0,0,0,0.42) 0%,
      rgba(0,0,0,0.18) 42%,
      rgba(0,0,0,0) 100%
    );
  }
  .hero-bg::after{
    bottom:0; height:48%;
    background:linear-gradient(
      to top,
      rgba(0,0,0,0.42) 0%,
      rgba(0,0,0,0.18) 42%,
      rgba(0,0,0,0) 100%
    );
  }
  .hero-slide{
    position:absolute; inset:0;
    opacity:0;
    transition:opacity 2.4s ease;
  }
  .hero-slide.active{opacity:1;}
  .hero-slide picture{
    display:block;
    width:100%; height:100%;
  }
  .hero-slide img{width:100%; height:100%; object-fit:cover;}

  .hero-content{
    position:relative; z-index:2;
    padding-bottom:34px;
    width:100%;
    display:flex; flex-direction:row; justify-content:space-between; align-items:flex-end;
    gap:32px;
  }
  .hero-text{
    display:flex;
    flex-direction:column;
    gap:0;
    min-width:0;
    max-width:min(640px, 70%);
  }
  .hero-title{
    font-family:var(--display);
    font-size:clamp(1.5rem, 3.2vw, 2.2rem);
    font-weight:500;
    line-height:1.1;
    letter-spacing:-0.02em;
    color:#fff;
    opacity:0;
    transition:opacity 1.1s ease 0.35s;
  }
  .hero-title.visible{opacity:1;}
  .hero-desc{
    font-family:'Figtree', sans-serif;
    font-size:clamp(0.88rem, 1.4vw, 1.05rem);
    font-weight:400;
    line-height:1.4;
    color:rgba(255,255,255,0.85);
    opacity:0;
    transition:opacity 1.1s ease 0.45s;
  }
  .hero-desc:not(.is-empty){
    margin-top:10px;
  }
  .hero-desc.visible{opacity:1;}
  .hero-desc.is-empty{
    display:none;
  }
  .hero-festival{
    max-height:68px; max-width:150px;
    width:auto; height:auto;
    object-fit:contain;
    filter:invert(1);
    opacity:0;
    transition:opacity 1.1s ease 0.5s;
    flex-shrink:0;
  }
  .hero-festival.visible{opacity:1;}
  .hero-festival.is-clickable{
    cursor:pointer;
  }
  .hero-festival.is-empty{
    max-height:0;
    max-width:0;
    overflow:hidden;
    pointer-events:none;
  }

  section{position:relative; padding:100px 0;}
  #projekte{background:var(--paper);}
  #ueberuns{background:var(--paper);}

  .section-head{
    display:flex; justify-content:space-between; align-items:flex-end;
    margin-bottom:55px; gap:24px; flex-wrap:wrap;
  }
  .section-head h2{font-size:clamp(2rem, 3.6vw, 2.8rem); line-height:1;}
  .section-head .all-link{
    font-size:0.95rem; font-weight:500; color:var(--ink-dim);
    padding-bottom:2px; border-bottom:1px solid var(--ink-dim);
  }
  .section-head .all-link:hover{color:var(--ink); border-color:var(--ink);}

  .filter-row{
    display:flex; align-items:center; gap:12px;
    margin-bottom:28px; flex-wrap:wrap;
  }
  .filter{
    font-family:'Figtree', sans-serif;
    font-size:0.8rem; font-weight:500;
    text-transform:uppercase;
    color:var(--ink-dim);
    padding-bottom:2px; border-bottom:1px solid transparent;
    cursor:pointer; transition:color .2s, border-color .2s;
  }
  .filter.active{ color:var(--ink); font-weight:500; border-color:var(--ink); }
  .filter:hover{ color:var(--ink); }
  .filter-dot{ color:var(--line); font-size:0.85rem; }

  .proj-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:28px 20px;
  }
  .proj-card{
    display:block;
    cursor:pointer;
    opacity:1;
    transition:opacity .4s ease;
  }
  .proj-card.is-fading{ opacity:0; }
  .proj-card.is-hidden{ display:none; }
  .poster{
    aspect-ratio:2/3;
    overflow:hidden;
    position:relative;
  }
  .poster img{
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform .6s ease;
  }
  .proj-card:hover .poster img{ transform:scale(1.04); }

  .poster-overlay{
    position:absolute; inset:0;
    background:rgba(0,0,0,0.72);
    color:#fff;
    display:flex; flex-direction:column; justify-content:flex-end;
    padding:22px 20px;
    opacity:0;
    transition:opacity .35s ease;
  }
  .proj-card:hover .poster-overlay,
  .proj-card:focus-within .poster-overlay{ opacity:1; }
  .poster-overlay h3{
    font-size:1.15rem; font-weight:500; line-height:1.2; margin-bottom:6px;
  }
  .poster-overlay .sub{
    font-size:0.78rem; font-weight:500; opacity:0.7; margin-bottom:10px;
  }
  .poster-overlay p{
    font-size:0.88rem; line-height:1.4; opacity:0.9;
  }

  .awards{
    padding:90px 0;
    background:#f1f1f1;
  }
  .awards p,
  .awards-text{
    font-family:var(--display);
    font-size:clamp(1.25rem,2.3vw,1.8rem);
    font-weight:500; line-height:1.55; color:var(--ink-dim); max-width:92%;
    letter-spacing:-0.01em;
  }
  .awards p strong,
  .awards-text strong{color:var(--ink); font-weight:500;}

  .about{display:grid; grid-template-columns:1.15fr 0.85fr; gap:90px; align-items:start;}
  .about-text p.lead{font-size:1.4rem; color:var(--ink); font-weight:500; line-height:1.5; margin-bottom:24px;}
  .about-text p{font-size:1.05rem; color:var(--ink-dim); max-width:520px;}
  .people{display:flex; flex-direction:column; gap:28px;}
  .person{display:flex; gap:18px; align-items:center;}
  .avatar{width:68px; height:68px; border-radius:50%; overflow:hidden; flex-shrink:0;}
  .person h4{font-size:1.05rem; font-weight:500;}
  .person span{font-size:0.9rem; color:var(--ink-dim);}

  footer{
    padding:48px 0 40px;
    background:var(--paper);
    border-top:1px solid var(--line);
  }
  .foot-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr auto;
    gap:40px;
    margin-bottom:40px;
    align-items:start;
  }
  .foot-brand{
    font-family:var(--display);
    font-size:1rem; font-weight:500;
    letter-spacing:-0.01em;
    margin-bottom:10px;
  }
  .foot-col p, .foot-col a{
    display:block; font-size:0.92rem; color:var(--ink-dim); margin-bottom:6px;
  }
  .foot-col a:hover{color:var(--ink);}
  .foot-menu{
    list-style:none;
    margin:0;
    padding:0;
  }
  .foot-menu li{margin:0;}
  .foot-menu a{
    display:block; font-size:0.92rem; color:var(--ink-dim); margin-bottom:6px;
  }
  .foot-menu a:hover{color:var(--ink);}

  .social-row{display:flex; gap:10px;}
  a.social-icon{
    width:40px; height:40px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:var(--ink); background:var(--paper-2); transition:all .2s;
  }
  a.social-icon:hover{background:var(--ink); color:#fff; transform:translateY(-2px);}
  a.social-icon svg{width:22px; height:22px;}
  a.social-icon img{
    width:70%; height:auto;
    transition:filter .2s;
  }
  a.social-icon:hover img{
    filter:brightness(0) invert(1);
  }

  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding-top:8px;
    font-size:0.85rem; color:var(--ink-dim); opacity:0.65; flex-wrap:wrap; gap:16px;
  }
  .foot-bottom a:hover{color:var(--ink);}

body.page-solid-nav header{
  background:rgba(255,255,255,0.92);
  backdrop-filter:blur(10px);
}
body.page-solid-nav .logo .logo-white{ opacity:0; }
body.page-solid-nav .logo .logo-dark{ opacity:1; }
body.page-solid-nav .navmeta{ color:var(--ink-dim); }
body.page-solid-nav .navmeta a:hover{ color:var(--ink); }
body.page-solid-nav .navmeta a.active{ color:var(--ink); }
body.page-solid-nav .menu-toggle span{ background:var(--ink); }

  .page-simple{
    padding:120px 0 100px;
    background:var(--paper);
  }
  .page-simple-title{
    font-size:clamp(1.8rem, 4.2vw, 3rem);
    font-weight:500;
    line-height:1.08;
    letter-spacing:-0.02em;
    margin-bottom:40px;
  }
  .page-simple-body{
    max-width:42rem;
  }
  .page-simple-body p{
    font-size:1.02rem;
    line-height:1.7;
    color:var(--ink-dim);
    margin-bottom:1.1em;
  }
  .page-simple-body p:last-child{ margin-bottom:0; }
  .page-simple-body h2,
  .page-simple-body h3{
    color:var(--ink);
    margin:1.6em 0 0.55em;
  }
  .page-simple-body ul,
  .page-simple-body ol{
    margin:0 0 1.1em 1.2em;
    color:var(--ink-dim);
  }
  .page-simple-body li{ margin-bottom:0.35em; }
  .page-simple-body a{
    color:var(--ink);
    border-bottom:1px solid var(--line);
  }
  .page-simple-body a:hover{ border-color:var(--ink); }

  .film-detail{
    padding:120px 0 100px;
    background:var(--paper);
  }
  .film-intro{
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:28px;
    margin-bottom:40px;
  }
  .film-intro-head{
    display:contents;
  }
  .film-intro-text{
    flex:1 1 0;
    min-width:0;
  }
  .film-title{
    font-size:clamp(1.8rem, 4.2vw, 3rem);
    font-weight:500;
    line-height:1.08;
    letter-spacing:-0.02em;
  }
  .film-meta{
    margin-top:12px;
    font-size:0.92rem;
    font-weight:500;
    color:var(--ink-dim);
  }
  .film-festival{
    max-height:68px; max-width:150px;
    width:auto; height:auto;
    object-fit:contain;
    display:block;
  }
  .film-festival-link{
    display:block;
    flex:0 0 auto;
    line-height:0;
  }
  .film-laurel-highlight{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex:0 0 auto;
  }
  .film-laurel-highlight .film-festival{
    max-height:56px;
    max-width:110px;
    flex:0 0 auto;
  }
  .film-laurels{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    flex:0 0 auto;
  }
  .film-laurels .film-festival{
    max-height:56px;
    max-width:110px;
    flex:0 0 auto;
  }
  .film-laurels--inline,
  .film-laurels--below{
    display:none;
  }
  .film-still{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--paper-2);
    margin-bottom:56px;
  }
  .still-slide{
    position:absolute; inset:0;
    opacity:0;
    transition:opacity 1.2s ease;
  }
  .still-slide.active{ opacity:1; }
  .still-slide img{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .still-nav{
    position:absolute; bottom:18px; left:50%;
    transform:translateX(-50%);
    z-index:2;
    display:flex; gap:8px;
  }
  .still-dot{
    width:8px; height:8px;
    border-radius:50%;
    border:none;
    padding:0;
    background:rgba(255,255,255,0.45);
    cursor:pointer;
    transition:background .25s ease, transform .25s ease;
  }
  .still-dot:hover{ background:rgba(255,255,255,0.75); }
  .still-dot.active{
    background:#fff;
    transform:scale(1.15);
  }
  .still-btn{
    position:absolute; top:50%; z-index:2;
    transform:translateY(-50%);
    width:40px; height:40px;
    border:none; padding:0;
    background:rgba(255,255,255,0.88);
    color:var(--ink);
    font-size:1.25rem;
    line-height:1;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease, opacity .2s ease;
  }
  .still-btn:hover{ background:#fff; }
  .still-btn.prev{ left:14px; }
  .still-btn.next{ right:14px; }
  .film-layout{
    display:grid;
    grid-template-columns:1.35fr 0.65fr;
    grid-template-areas:
      "main aside"
      "gallery aside";
    gap:100px;
    align-items:start;
  }
  .film-main{ grid-area:main; }
  .film-aside{ grid-area:aside; }
  .film-gallery{ grid-area:gallery; }

  .film-back{
    display:inline-block;
    font-size:0.9rem;
    font-weight:500;
    color:var(--ink-dim);
    margin-bottom:36px;
    border-bottom:1px solid transparent;
    transition:color .2s, border-color .2s;
  }
  .film-back:hover{
    color:var(--ink);
    border-color:var(--ink);
  }

  .film-lead{
    font-family:var(--display);
    font-size:clamp(1.25rem, 2.2vw, 1.65rem);
    font-weight:500;
    line-height:1.45;
    letter-spacing:-0.01em;
    color:var(--ink);
    margin-bottom:28px;
    max-width:40em;
  }
  .film-body p{
    font-size:1.05rem;
    color:var(--ink-dim);
    max-width:40em;
    margin-bottom:1.15em;
  }
  .film-body p:last-child{ margin-bottom:0; }
  .film-body ul,
  .film-body ol{
    max-width:40em;
    margin:0 0 1.15em 1.25em;
    padding-left:0.85em;
    color:var(--ink-dim);
    font-size:1.05rem;
  }
  .film-body li{ margin-bottom:0.4em; }
  .film-body li:last-child{ margin-bottom:0; }
  .film-body ul ul,
  .film-body ol ol,
  .film-body ul ol,
  .film-body ol ul{
    margin-bottom:0.4em;
    margin-top:0.4em;
  }

  .film-aside{
    position:sticky;
    top:96px;
  }
  .film-poster{
    aspect-ratio:2/3;
    overflow:hidden;
    margin-bottom:28px;
    background:var(--paper-2);
  }
  .film-poster img{
    width:100%; height:100%; object-fit:cover; display:block;
  }

  .credits{
    display:grid;
    gap:14px 0;
    padding-top:4px;
    border-top:1px solid var(--line);
  }
  .credit-row{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:12px;
    padding:10px 0;
    border-bottom:1px solid var(--line);
    font-size:0.92rem;
  }
  .credit-label{
    text-transform:uppercase;
    letter-spacing:0.04em;
    font-size:0.72rem;
    font-weight:500;
    color:var(--ink-dim);
    padding-top:3px;
  }
  .credit-value{
    font-weight:500;
    color:var(--ink);
    line-height:1.35;
  }
  .credit-value a{
    border-bottom:1px solid var(--line);
    transition:border-color .2s, color .2s;
  }
  .credit-value a:hover{
    border-color:var(--ink);
  }

  .film-links{
    margin:28px 0 0;
    display:flex;
    flex-wrap:wrap;
    gap:10px;
  }
  .film-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-size:0.85rem;
    font-weight:500;
    color:var(--ink);
    border:1px solid var(--ink);
    padding:9px 18px;
    line-height:1;
    transition:background .2s, color .2s;
  }
  .film-link:hover{
    background:var(--ink);
    color:#fff;
  }

  .film-gallery{
    margin-top:0;
  }
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:12px;
  }
  .gallery-item{
    aspect-ratio:1;
    overflow:hidden;
    background:var(--paper-2);
    border:none;
    padding:0;
    cursor:pointer;
    display:block;
    width:100%;
  }
  .gallery-item img{
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform .5s ease;
  }
  .gallery-item:hover img{ transform:scale(1.04); }

  .lightbox{
    position:fixed; inset:0; z-index:200;
    background:rgba(0,0,0,0.88);
    display:flex; align-items:center; justify-content:center;
    padding:var(--pad);
    opacity:0; visibility:hidden;
    transition:opacity .3s ease, visibility .3s ease;
  }
  .lightbox.open{ opacity:1; visibility:visible; }
  .lightbox-inner{
    width:min(920px, 100%);
    max-height:100%;
    display:flex;
    flex-direction:column;
    gap:16px;
  }
  .lightbox-img-wrap{
    flex:1 1 auto;
    min-height:0;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .lightbox-img-wrap img{
    max-width:100%;
    max-height:min(72vh, 820px);
    width:auto;
    height:auto;
    object-fit:contain;
    display:block;
  }
  .lightbox-meta{
    color:#fff;
    max-width:40em;
    margin:0 auto;
    text-align:center;
  }
  .lightbox-caption{
    font-size:1rem;
    line-height:1.5;
    margin-bottom:8px;
  }
  .lightbox-credit{
    font-size:0.82rem;
    color:rgba(255,255,255,0.55);
  }
  .lightbox-close{
    position:absolute;
    top:22px; right:22px;
    width:40px; height:40px;
    border:none;
    background:transparent;
    color:#fff;
    font-size:1.8rem;
    line-height:1;
    cursor:pointer;
    opacity:0.75;
    transition:opacity .2s;
  }
  .lightbox-close:hover{ opacity:1; }

@media (max-width:1000px){
    section{ padding:75px 0; }
    .awards{ padding:66px 0; }
    .section-head{ margin-bottom:40px; }
    .proj-grid{grid-template-columns:repeat(3, 1fr); gap:24px 16px;}
    .hero-title,
    .poster-overlay h3,
    .awards p,
    .awards-text{
      font-size:clamp(2rem, 3.6vw, 2.8rem);
    }
    .hero-title,
    .poster-overlay h3{
      line-height:1.15;
    }
  }
  @media (max-width:900px){

  .film-intro{
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .film-intro-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
  }
  .film-intro-text{
    flex:1 1 auto;
    min-width:0;
  }
  .film-laurel-highlight{
    flex:0 0 auto;
  }
  .film-laurel-highlight .film-festival{
    max-height:60px;
    max-width:120px;
  }
  .film-laurel-highlight > :not(:first-child){
    display:none;
  }
  .film-laurels--inline{
    display:none;
  }
  .film-laurels--below{
    display:flex;
    justify-content:flex-start;
    flex-wrap:wrap;
    width:100%;
    margin-top:0;
    grid-column:2;
    align-self:start;
  }
  .film-layout{
    grid-template-columns:1fr;
    grid-template-areas:
      "main"
      "aside"
      "gallery";
    gap:75px;
  }
  .film-aside{
    position:static;
    display:grid;
    grid-template-columns:minmax(220px, 320px) 1fr;
    gap:28px 48px;
    align-items:start;
  }
  .film-poster{
    margin-bottom:0;
    max-width:none;
    width:100%;
  }
  .credits{
    border-top:none;
    padding-top:0;
  }
  .film-detail{ padding:100px 0 75px; }
  .page-simple{ padding:100px 0 75px; }
  .film-intro{ margin-bottom:28px; }
  .film-still{ margin-bottom:40px; }
  }
  @media (max-width:700px){

  .film-intro-head{ align-items:flex-start; }
  .film-laurel-highlight .film-festival{
    max-height:52px;
    max-width:100px;
  }
  .film-festival{ max-height:52px; max-width:120px; }
  .film-still{ margin-bottom:28px; }
  .film-aside{
    grid-template-columns:1fr;
    gap:24px;
  }
  .film-laurels--below{
    grid-column:1;
    margin-top:8px;
  }
  .film-poster{
    max-width:none;
    width:100%;
  }
  .gallery-grid{ grid-template-columns:repeat(2, 1fr); gap:10px; }
  .credit-row{ grid-template-columns:1fr; gap:4px; }
  .film-detail{ padding:96px 0 55px; }
  .page-simple{ padding:96px 0 55px; }
  .page-simple-title{ margin-bottom:28px; }
  .film-intro{ margin-bottom:20px; }
  .film-layout{ gap:55px; }
  .film-lead{ margin-bottom:20px; }
  .film-back{ margin-bottom:24px; }

    :root{ --pad:22px; }
    section{ padding:55px 0; }
    .film-detail{ padding:96px 0 55px; }
    .page-simple{ padding:96px 0 55px; }
    .awards{ padding:40px 0; }
    .section-head{ margin-bottom:24px; }
    .filter-row{ gap: 5px; }
    .proj-grid{grid-template-columns:1fr 1fr;}
    .about{grid-template-columns:1fr; gap:40px;}
    .foot-grid{grid-template-columns:1fr 1fr; gap:28px;}
    .hero-content{
      flex-direction:row;
      align-items:flex-end;
      gap:20px;
    }
    .hero-text{max-width:none; flex:1 1 auto; min-width:0;}
    .hero-festival{max-height:52px; max-width:120px; flex-shrink:0;}
    .poster-overlay{opacity:1; background:linear-gradient(transparent 40%, rgba(0,0,0,0.8));}
  }
  @media (max-width:480px){
    .proj-grid{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr;}
  }
  @media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} }
