/* ─── REGAS FILMS — SHARED STYLESHEET v3 (responsive + fixes) ─────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
:root {
  --black:#0a0a0a; --off-black:#111111; --charcoal:#1c1c1c; --mid:#2e2e2e;
  --muted:#6b6b6b; --light:#b0a898; --cream:#e8e2d9; --gold:#c8a96e;
  --white:#f5f0eb; --red:#b03a2e;
  --font-display:'Bebas Neue',sans-serif;
  --font-body:'Cormorant Garamond',serif;
  --font-mono:'DM Mono',monospace;
}
html { scroll-behavior:smooth; }
body { background:var(--black); color:var(--cream); font-family:var(--font-body); font-size:18px; line-height:1.6; }
* { cursor:none !important; }
#cursor { width:10px;height:10px;background:var(--gold);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .2s,height .2s;mix-blend-mode:difference; }
#cursor.expand { width:38px;height:38px;background:rgba(200,169,110,0.25); }
@media (hover:none) { * { cursor:auto !important; } #cursor { display:none; } }

/* NAV */
#main-nav { position:fixed;top:0;left:0;right:0;z-index:100;padding:1.6rem 3rem;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(to bottom,rgba(10,10,10,0.96) 0%,transparent 100%); }
.logo { font-family:var(--font-display);font-size:1.5rem;letter-spacing:.15em;color:var(--white);text-decoration:none; }
.logo span { color:var(--gold); }
.nav-links { display:flex;gap:2.5rem;list-style:none; }
.nav-links a { font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--light);text-decoration:none;transition:color .2s; }
.nav-links a:hover,.nav-links a.active { color:var(--gold); }
.nav-admin-btn { font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;background:transparent;border:1px solid var(--mid);color:var(--muted);padding:.4rem .9rem;transition:all .2s; }
.nav-admin-btn:hover { border-color:var(--gold);color:var(--gold); }

/* MOBILE NAV */
.nav-hamburger { display:none;background:none;border:none;color:var(--light);font-size:1.4rem;line-height:1;padding:.2rem; }
@media (max-width:768px) {
  #main-nav { padding:1.2rem 1.5rem; }
  .nav-links { display:none;position:fixed;inset:0;background:rgba(10,10,10,.98);flex-direction:column;align-items:center;justify-content:center;gap:3rem;z-index:99; }
  .nav-links.open { display:flex; }
  .nav-links a { font-size:.9rem;letter-spacing:.25em; }
  .nav-hamburger { display:block; }
  .nav-admin-btn { display:none; }
}

/* SECTIONS */
section { padding:7rem 3rem; }
@media (max-width:768px) { section { padding:5rem 1.5rem; } }
.section-label { font-family:var(--font-mono);font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;display:flex;align-items:center;gap:1rem; }
.section-label::after { content:'';height:1px;width:40px;background:var(--gold);opacity:.5; }
.section-title { font-family:var(--font-display);font-size:clamp(3rem,6vw,5.5rem);line-height:1;letter-spacing:.03em;color:var(--white);margin-bottom:3rem; }

/* BUTTONS */
.btn-primary { display:inline-block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--black);background:var(--gold);padding:1rem 2.2rem;text-decoration:none;transition:background .2s,transform .2s; }
.btn-primary:hover { background:var(--cream);transform:translateY(-2px); }
.btn-ghost { font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--light);text-decoration:none;border-bottom:1px solid var(--muted);padding-bottom:2px;transition:color .2s,border-color .2s;display:inline-block; }
.btn-ghost:hover { color:var(--gold);border-color:var(--gold); }

/* PROJECT CARDS */
.projects-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5px;background:var(--charcoal); }
.project-card { aspect-ratio:16/10;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;text-decoration:none; }
.card-bg { position:absolute;inset:0;transition:transform .6s ease; }
.project-card:hover .card-bg { transform:scale(1.04); }
.project-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.92) 0%,transparent 65%); }
.project-hover { position:absolute;inset:0;background:rgba(200,169,110,.07);opacity:0;transition:opacity .3s;z-index:1; }
.project-card:hover .project-hover { opacity:1; }
.project-info { position:relative;z-index:2; }
.project-type { font-family:var(--font-mono);font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:.3rem; }
.project-title { font-family:var(--font-display);font-size:2rem;letter-spacing:.05em;color:var(--white);line-height:1; }
.project-year { font-family:var(--font-mono);font-size:.6rem;color:var(--muted);margin-top:.3rem; }
.project-badge { display:inline-block;font-family:var(--font-mono);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;padding:.25rem .7rem;margin-top:.5rem; }
.badge-festival { background:var(--gold);color:var(--black); }
.badge-released { background:rgba(255,255,255,.1);color:var(--light);border:1px solid var(--muted); }

/* FORMS */
.field { display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.2rem; }
label,.field-label { font-family:var(--font-mono);font-size:.6rem;letter-spacing:.25em;text-transform:uppercase;color:var(--muted); }
input,select,textarea { background:var(--charcoal);border:1px solid var(--mid);color:var(--cream);font-family:var(--font-body);font-size:1rem;padding:.85rem 1rem;outline:none;transition:border-color .2s;appearance:none;width:100%; }
input:focus,select:focus,textarea:focus { border-color:var(--gold); }
input::placeholder,textarea::placeholder { color:var(--muted);font-style:italic; }
select option { background:var(--charcoal); }
textarea { resize:vertical;min-height:110px; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
@media (max-width:600px) { .form-row { grid-template-columns:1fr; } }
.btn-submit { font-family:var(--font-mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--black);background:var(--gold);border:none;padding:1rem 2.5rem;transition:background .2s,transform .2s;display:inline-block; }
.btn-submit:hover { background:var(--cream);transform:translateY(-2px); }

/* PASSWORD GATE */
#admin-gate { display:none;position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:2000;align-items:center;justify-content:center;backdrop-filter:blur(8px); }
#admin-gate.open { display:flex; }
.gate-box { background:#141414;border:1px solid var(--mid);padding:3rem;width:360px;text-align:center; }
.gate-title { font-family:var(--font-display);font-size:2.5rem;color:var(--white);letter-spacing:.1em;margin-bottom:.5rem; }
.gate-sub { font-family:var(--font-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:2rem; }
.gate-input { width:100%;background:#1c1c1c;border:1px solid var(--mid);color:var(--cream);font-family:var(--font-mono);font-size:.9rem;padding:.9rem 1rem;outline:none;text-align:center;letter-spacing:.1em;transition:border-color .2s;margin-bottom:1rem; }
.gate-input:focus { border-color:var(--gold); }
.gate-btn { width:100%;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;background:var(--gold);color:var(--black);border:none;padding:.9rem;transition:background .2s; }
.gate-btn:hover { background:var(--cream); }
.gate-error { font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em;color:var(--red);margin-top:.8rem;display:none; }
.gate-close { font-family:var(--font-mono);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);background:none;border:none;margin-top:1.2rem;display:block;width:100%;transition:color .2s; }
.gate-close:hover { color:var(--light); }

/* ADMIN PANEL */
#admin-overlay { display:none;position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.8);backdrop-filter:blur(4px); }
#admin-panel { position:fixed;top:0;right:0;bottom:0;width:540px;background:#131313;border-left:1px solid #222;z-index:1001;display:none;flex-direction:column;overflow:hidden; }
@media (max-width:600px) { #admin-panel { width:100%; } }
.admin-header { padding:1.4rem 2rem;border-bottom:1px solid #222;display:flex;justify-content:space-between;align-items:center;flex-shrink:0; }
.admin-title { font-family:var(--font-mono);font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold); }
.admin-close { background:none;border:none;color:var(--muted);font-size:1.4rem;line-height:1;padding:.2rem; }
.admin-close:hover { color:var(--cream); }
.admin-tabs { display:flex;border-bottom:1px solid #222;flex-shrink:0;overflow-x:auto; }
.admin-tab { font-family:var(--font-mono);font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;padding:.9rem 1.2rem;background:none;border:none;color:var(--muted);border-bottom:2px solid transparent;transition:all .2s;white-space:nowrap; }
.admin-tab.active { color:var(--gold);border-bottom-color:var(--gold); }
.admin-tab:hover { color:var(--light); }
.admin-body { flex:1;overflow-y:auto;padding:1.8rem; }
.admin-section { display:none; }
.admin-section.active { display:block; }
.admin-field { margin-bottom:1.3rem; }
.admin-label { font-family:var(--font-mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.45rem; }
.admin-input { width:100%;background:#1c1c1c;border:1px solid #282828;color:var(--cream);font-family:var(--font-body);font-size:.95rem;padding:.7rem .9rem;outline:none;transition:border-color .2s; }
.admin-input:focus { border-color:var(--gold); }
.admin-textarea { width:100%;background:#1c1c1c;border:1px solid #282828;color:var(--cream);font-family:var(--font-body);font-size:.95rem;padding:.7rem .9rem;outline:none;min-height:80px;resize:vertical;transition:border-color .2s; }
.admin-textarea:focus { border-color:var(--gold); }
.admin-select { width:100%;background:#1c1c1c;border:1px solid #282828;color:var(--cream);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;padding:.7rem .9rem;outline:none;appearance:none; }
.admin-select:focus { border-color:var(--gold); }
.admin-save { font-family:var(--font-mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;background:var(--gold);color:var(--black);border:none;padding:.75rem 2rem;width:100%;margin-top:.5rem;transition:background .2s; }
.admin-save:hover { background:var(--cream); }
.admin-card { background:#181818;border:1px solid #242424;padding:1.1rem;margin-bottom:.9rem; }
.admin-card-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem; }
.admin-card-title { font-family:var(--font-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--light); }
.admin-card-del { background:none;border:none;color:#5a2a2a;font-size:.7rem;font-family:var(--font-mono);letter-spacing:.1em; }
.admin-card-del:hover { color:var(--red); }
.admin-add-btn { width:100%;background:none;border:1px dashed #282828;color:var(--muted);font-family:var(--font-mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;padding:.9rem;transition:all .2s;margin-top:.4rem; }
.admin-add-btn:hover { border-color:var(--gold);color:var(--gold); }
.admin-divider { border:none;border-top:1px solid #222;margin:1.5rem 0; }
.admin-toast { position:fixed;bottom:2rem;right:2rem;background:var(--gold);color:var(--black);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;padding:.7rem 1.4rem;z-index:9999;opacity:0;transform:translateY(8px);transition:all .3s;pointer-events:none; }
.admin-toast.show { opacity:1;transform:translateY(0); }
.admin-row { display:grid;grid-template-columns:1fr 1fr;gap:.9rem; }
.toggle-row { display:flex;align-items:center;gap:1rem;margin-bottom:1.3rem; }
.toggle { position:relative;width:42px;height:22px; }
.toggle input { opacity:0;width:0;height:0; }
.toggle-slider { position:absolute;inset:0;background:#282828;border-radius:11px;transition:background .2s; }
.toggle-slider::before { content:'';position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:var(--muted);border-radius:50%;transition:transform .2s,background .2s; }
.toggle input:checked + .toggle-slider { background:var(--gold); }
.toggle input:checked + .toggle-slider::before { transform:translateX(20px);background:var(--black); }
.toggle-label { font-family:var(--font-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--light); }

/* REVEAL */
.reveal { opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }

/* FOOTER */
footer { background:var(--off-black);padding:3rem;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--mid);flex-wrap:wrap;gap:1rem; }
.footer-logo { font-family:var(--font-display);font-size:1.3rem;letter-spacing:.15em;color:var(--white); }
.footer-logo span { color:var(--gold); }
.footer-links { display:flex;gap:2rem;list-style:none; }
.footer-links a { font-family:var(--font-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s; }
.footer-links a:hover { color:var(--gold); }
.footer-copy { font-family:var(--font-mono);font-size:.58rem;color:var(--muted);letter-spacing:.1em; }
@media (max-width:600px) {
  footer { flex-direction:column;align-items:flex-start;padding:2rem 1.5rem; }
  .footer-links { flex-wrap:wrap;gap:1rem; }
}

/* ABOUT LAYOUT */
.about-layout { display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start; }
@media (max-width:900px) { .about-layout { grid-template-columns:1fr;gap:3rem; } .about-portrait { max-height:400px; } }
.about-portrait { background:var(--mid);position:relative;overflow:hidden;width:100%;min-height:520px;height:100%; }
.about-portrait img { width:100%;height:100%;object-fit:cover;display:block; }
.about-portrait-inner { position:absolute;inset:0;background:linear-gradient(160deg,#1c2030,#2a1810);display:flex;align-items:center;justify-content:center; }
.portrait-mono { font-family:var(--font-display);font-size:5rem;color:rgba(200,169,110,.18);letter-spacing:.1em; }
.portrait-border { position:absolute;inset:12px;border:1px solid rgba(200,169,110,.18); }
.about-text p { font-size:1.05rem;color:var(--light);font-style:italic;line-height:1.9;margin-bottom:1.4rem; }
.about-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem;padding-top:3rem;border-top:1px solid var(--mid); }
@media (max-width:500px) { .about-stats { grid-template-columns:1fr 1fr; } }
.stat-number { font-family:var(--font-display);font-size:3rem;color:var(--gold);line-height:1; }
.stat-label { font-family:var(--font-mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.3rem; }

/* CONTACT LAYOUT */
.contact-layout { display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start; }
@media (max-width:900px) { .contact-layout { grid-template-columns:1fr;gap:3rem; } }
.contact-link { display:flex;align-items:center;gap:1rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--light);text-decoration:none;transition:color .2s;border-bottom:1px solid var(--mid);padding-bottom:1rem;margin-bottom:1rem; }
.contact-link:hover { color:var(--gold); }
.contact-link-label { color:var(--muted);font-size:.6rem;letter-spacing:.2em;min-width:80px; }

/* LOADING */
.loading-state { display:flex;align-items:center;justify-content:center;min-height:200px;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted); }

/* FESTIVAL SEAL — CHAMPAGNE GOLD */
.festival-seal {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  aspect-ratio:3/4;position:relative;overflow:hidden;
  background:linear-gradient(160deg,#1a1208 0%,#2d1f08 30%,#1a1208 60%,#251a08 100%);
  border:1px solid rgba(200,169,110,.3);
}
.seal-shimmer {
  position:absolute;inset:0;
  background:linear-gradient(135deg,transparent 0%,rgba(200,169,110,.08) 30%,rgba(255,240,180,.12) 50%,rgba(200,169,110,.08) 70%,transparent 100%);
  animation:shimmer 4s ease infinite;
}
.seal-grain {
  position:absolute;inset:0;opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}
.seal-border-outer {
  position:absolute;inset:16px;
  border:1px solid rgba(200,169,110,.4);
}
.seal-border-inner {
  position:absolute;inset:22px;
  border:0.5px solid rgba(200,169,110,.2);
}
.seal-content { position:relative;z-index:2;text-align:center;padding:2.5rem; }
.seal-circle {
  width:150px;height:150px;
  border:2px solid rgba(200,169,110,.8);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 1.8rem;position:relative;
  box-shadow:0 0 30px rgba(200,169,110,.15), inset 0 0 20px rgba(200,169,110,.05);
}
.seal-circle::before {
  content:'';position:absolute;inset:6px;
  border:0.5px solid rgba(200,169,110,.3);border-radius:50%;
}
.seal-circle::after {
  content:'';position:absolute;inset:12px;
  border:0.5px solid rgba(200,169,110,.15);border-radius:50%;
}
.seal-diamond { position:absolute;width:12px;height:12px;background:var(--gold);clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%); }
.seal-diamond.left { left:-7px;top:50%;transform:translateY(-50%); }
.seal-diamond.right { right:-7px;top:50%;transform:translateY(-50%); }
.seal-diamond.top { top:-7px;left:50%;transform:translateX(-50%); }
.seal-rf { font-family:Georgia,serif;font-size:56px;font-weight:700;line-height:1;text-shadow:0 0 20px rgba(200,169,110,.3); }
.seal-rf-r { color:#f0e6cc; }
.seal-rf-f { color:#c8a96e; }
.seal-ornament { font-family:var(--font-mono);font-size:.55rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(200,169,110,.5);margin-bottom:.8rem; }
.seal-film-title {
  font-family:var(--font-display);font-size:2.2rem;
  letter-spacing:.15em;
  background:linear-gradient(135deg,#c8a96e 0%,#f0e6cc 40%,#c8a96e 60%,#a07840 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:.3rem;
}
.seal-year-tag { font-family:var(--font-mono);font-size:.62rem;letter-spacing:.3em;color:rgba(200,169,110,.6); }
.seal-divider { width:60px;height:1px;background:linear-gradient(to right,transparent,rgba(200,169,110,.5),transparent);margin:1rem auto; }
.seal-status-pill {
  display:inline-block;
  background:linear-gradient(135deg,#c8a96e,#a07840);
  color:#1a1208;
  font-family:var(--font-mono);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;
  padding:.4rem 1.2rem;margin-top:.5rem;
  animation:pulse 3s ease infinite;
}
.seal-laurel-left,.seal-laurel-right {
  position:absolute;bottom:2.5rem;
  font-size:1.8rem;color:rgba(200,169,110,.3);
  font-family:Georgia,serif;
}
.seal-laurel-left { left:1.5rem; }
.seal-laurel-right { right:1.5rem; }
@keyframes shimmer { 0%,100%{opacity:.6} 50%{opacity:1} }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.65} }
@keyframes fadeUp { from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0}to{opacity:1} }
@keyframes marquee { from{transform:translateX(100vw)}to{transform:translateX(-100%)} }

/* IMAGE UPLOADER */
.img-upload-area {
  border: 1.5px dashed #2a2a2a;
  padding: 1.5rem;
  text-align: center;
  transition: border-color .2s, background .2s;
  margin-bottom: .8rem;
  position: relative;
}
.img-upload-area.dragover { border-color: var(--gold); background: rgba(200,169,110,.05); }
.img-upload-area input[type="file"] {
  position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%;
  background: none; border: none; padding: 0;
}
.img-upload-label {
  font-family: var(--font-mono); font-size: .6rem; letter-spacing: .2em;
  text-transform: uppercase; color: var(--muted); pointer-events: none;
  display: flex; flex-direction: column; align-items: center; gap: .5rem;
}
.img-upload-label span { font-size: 1.5rem; opacity: .4; }
.img-upload-progress {
  height: 2px; background: var(--mid); margin-top: .5rem; overflow: hidden; display: none;
}
.img-upload-progress-bar {
  height: 100%; background: var(--gold); width: 0%; transition: width .3s;
}
.img-preview {
  width: 100%; max-height: 120px; object-fit: cover; display: block;
  margin-bottom: .5rem; opacity: .8;
}
.img-upload-success {
  font-family: var(--font-mono); font-size: .58rem; letter-spacing: .1em;
  color: var(--gold); margin-top: .4rem; display: none;
}
