@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--ink:#19182a;--muted:#6d6a7b;--paper:#f7f6fb;--card:#fff;--purple:#6638d6;--pink:#e9488b;--line:#e7e3f0;--dark:#17152a}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.55}a{color:var(--purple);text-decoration:none}.topbar{height:auto;min-height:72px;padding:16px max(5%,calc((100% - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}.brand{font:700 22px 'Space Grotesk',sans-serif;letter-spacing:1px;color:var(--ink)}.brand span{display:block;font:500 11px 'DM Sans',sans-serif;letter-spacing:2px;color:var(--muted);text-transform:uppercase}.topbar nav{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.topbar nav a{color:#4f4b60;font-weight:600;font-size:14px}.topbar nav a.active,.topbar nav a:hover{color:var(--purple)}.topbar nav form{margin:0}.nav-button{background:none;border:0;color:#4f4b60;font:600 14px 'DM Sans';cursor:pointer}.wrap{max-width:1180px;width:90%;margin:0 auto}.hero{margin:34px 0 50px;padding:clamp(28px,5vw,60px);border-radius:28px;background:radial-gradient(circle at 85% 20%,#8c50ff 0,transparent 30%),linear-gradient(120deg,#201743,#3b236b 58%,#b42b73);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden;min-height:310px}.hero>div:first-child{max-width:680px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--pink);margin:0 0 12px}.hero .eyebrow{color:#ffb8d6}.hero h1,.form-intro h1{font:700 clamp(34px,5vw,54px)/1.1 'Space Grotesk',sans-serif;margin:0 0 18px;letter-spacing:-1.5px}.hero h1 span,.form-intro h1 span{color:#ff9ec7}.hero p:not(.eyebrow){max-width:590px;color:#e6def7;margin:0 0 25px}.hero-mark{font-size:clamp(70px,12vw,145px);width:210px;height:210px;border-radius:50%;display:grid;place-items:center;background:#ffffff16;border:1px solid #ffffff30;color:#ffb4d4;flex-shrink:0}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:linear-gradient(100deg,var(--purple),var(--pink));padding:12px 20px;color:#fff;font-weight:700;font-size:14px;cursor:pointer;font-family:inherit}.button:hover{filter:brightness(1.07)}.button.light{background:#fff;color:var(--purple)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 22px}.section-head h1,.section-head h2{font:700 30px 'Space Grotesk',sans-serif;margin:0 0 5px}.section-head p{margin:0;color:var(--muted)}.count{border-radius:100px;padding:8px 13px;background:#eee8ff;color:#5630b7;font-size:12px;font-weight:700;white-space:nowrap}.filters{display:flex;gap:10px;margin-bottom:25px;flex-wrap:wrap}.filters input,.filters select,.submission-form input,.submission-form select,.submission-form textarea{font:inherit;border:1px solid #ddd7e9;background:#fff;border-radius:9px;padding:12px 13px;color:var(--ink);min-width:0}.filters input{flex:1;min-width:220px}.filters select{min-width:160px}.filters button{border:0;border-radius:9px;padding:0 20px;background:var(--dark);color:#fff;font:600 14px 'DM Sans';cursor:pointer}.clear{align-self:center;padding:8px}.film-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.film-card{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 8px 25px #28165b08}.video{position:relative;aspect-ratio:16/9;background:#17152a}.video iframe{width:100%;height:100%;border:0;position:absolute;inset:0}.poster{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.poster-placeholder{aspect-ratio:16/9;display:grid;place-items:center;background:linear-gradient(130deg,#26184a,#a22c76);font-size:55px;color:#fff}.film-info{padding:19px}.film-meta{font-size:11px;color:var(--purple);font-weight:700;text-transform:uppercase;letter-spacing:.6px}.film-info h3{font:700 22px 'Space Grotesk';margin:6px 0}.film-info p{color:var(--muted);font-size:13px;margin:8px 0 13px;overflow-wrap:anywhere}.film-info .director{color:#39354a;font-weight:600;margin:0 0 10px}.watch{display:inline-block;margin-top:5px;font-size:13px;font-weight:700}.empty{text-align:center;padding:55px 20px;background:#fff;border:1px dashed #d6cde8;border-radius:18px}.empty-icon{font-size:40px}.empty h3{font:700 23px 'Space Grotesk';margin:8px 0}.empty p{color:var(--muted);margin:0 auto 20px;max-width:510px}.callout{margin:55px 0;padding:30px 34px;border-radius:20px;background:linear-gradient(110deg,#291b50,#7432a5,#bd367d);display:flex;justify-content:space-between;align-items:center;gap:20px;color:#fff}.callout h2{font:700 26px 'Space Grotesk';margin:0 0 5px}.callout p{margin:0;color:#e9dcf5}.form-wrap{max-width:900px}.form-intro{padding:45px 0 24px}.form-intro h1{font-size:clamp(35px,5vw,48px);color:var(--ink)}.form-intro p:not(.eyebrow){color:var(--muted);max-width:620px}.submission-form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(20px,4vw,36px);box-shadow:0 10px 30px #28165b08}.form-section{margin-bottom:30px}.form-section h2{font:700 21px 'Space Grotesk';padding-bottom:12px;border-bottom:1px solid var(--line);margin:0 0 18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.submission-form label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:700}.submission-form label.full{grid-column:1/-1}.submission-form small{font-weight:400;color:var(--muted)}.submission-form textarea{resize:vertical}.confirmations{display:grid;gap:15px;margin:25px 0}.submission-form label.check{display:flex;flex-direction:row;align-items:flex-start;gap:11px;font-weight:400;color:#514c61;line-height:1.5}.check input{margin-top:4px;flex-shrink:0}.submit-button{min-width:190px}.form-note{font-size:12px;color:var(--muted);margin:14px 0 0}.notice{padding:15px 18px;border-radius:11px;margin:15px 0 20px;font-size:14px}.notice.success{background:#e9f9f0;border:1px solid #b9e9cb;color:#17663c}.notice.error{background:#fff0f1;border:1px solid #f4c4cb;color:#9b2635}.notice ul{margin:8px 0 0;padding-left:22px}.admin-login{max-width:520px;padding-top:9vh}.admin-login .form-intro{padding-top:0}.admin-login .submission-form label{margin-bottom:18px}.admin-list{display:grid;gap:16px;margin:20px 0 35px}.admin-card{padding:22px;background:#fff;border:1px solid var(--line);border-radius:15px}.admin-card-head{display:flex;justify-content:space-between;gap:15px;align-items:start}.admin-card h3{font:700 21px 'Space Grotesk';margin:0}.admin-card p{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.status{display:inline-block;padding:5px 9px;border-radius:100px;font-size:10px;font-weight:700;letter-spacing:.6px;background:#eee;color:#555}.status.pending{background:#fff2d9;color:#855800}.status.approved{background:#e2f8eb;color:#17663c}.status.rejected{background:#ffe7e8;color:#a12b36}.admin-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.button.small{padding:9px 12px;font-size:12px}.button.danger{background:#a82a3b}.previous-heading{margin-top:42px}footer{text-align:center;color:var(--muted);padding:28px 5%;font-size:12px;border-top:1px solid var(--line);margin-top:45px}@media(max-width:850px){.film-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-mark{width:140px;height:140px;font-size:90px}}@media(max-width:600px){.topbar{align-items:flex-start}.topbar nav{gap:13px}.hero{margin-top:20px;min-height:0}.hero-mark{display:none}.section-head{align-items:flex-start;flex-direction:column}.film-grid{grid-template-columns:1fr}.filters{display:grid;grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1;min-width:0}.filters button{padding:12px}.form-grid{grid-template-columns:1fr}.submission-form label.full{grid-column:auto}.callout{align-items:flex-start;flex-direction:column}.admin-card-head{flex-direction:column}}

/* Short-film poster upload and review additions */
.film-poster{width:100%;aspect-ratio:2/3;object-fit:cover;display:block;background:#eee}
.admin-poster-wrap{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin:14px 0}
.admin-poster{width:150px;max-height:230px;object-fit:cover;border-radius:9px;border:1px solid var(--line)}
.admin-poster-wrap span,.no-poster{font-size:12px;color:var(--muted)}
