:root{
  --bg:#f4ecd9;
  --bg-soft:#fbf6ea;
  --paper:#fbf3e4;
  --paper-strong:#f5ead4;
  --paper-deep:#e8d7b8;
  --line:#dbc8a6;
  --line-soft:rgba(140,107,63,.18);
  --ink:#173b37;
  --ink-soft:#53675f;
  --green:#133d38;
  --green-2:#2c6b63;
  --red:#a94636;
  --red-deep:#8d3326;
  --gold:#bc9a61;
  --shadow:0 20px 46px rgba(77,59,36,.12);
  --shadow-soft:0 10px 24px rgba(77,59,36,.08);
  --shadow-card:0 14px 34px rgba(77,59,36,.1);
  --radius-xl:28px;
  --radius-lg:22px;
  --radius-md:16px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Vazirmatn,system-ui,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 16%, rgba(169,73,53,.07), transparent 21%),
    radial-gradient(circle at 88% 12%, rgba(44,102,93,.09), transparent 22%),
    linear-gradient(180deg,#f7f0e1 0%,#f1e6cf 100%);
  overflow-x:hidden;
}

.grain{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-2;
  background-image:
    linear-gradient(rgba(103,78,47,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(103,78,47,.04) 1px, transparent 1px),
    radial-gradient(circle at 30% 30%, rgba(120,92,55,.07), transparent 20%),
    radial-gradient(circle at 70% 65%, rgba(39,82,74,.05), transparent 24%);
  background-size:38px 38px,38px 38px,auto,auto;
}

.grain::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.14;
  background:
    repeating-linear-gradient(13deg, rgba(84,58,29,.16) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(-9deg, rgba(255,255,255,.42) 0 1px, transparent 1px 8px);
}

.shell,
.shell-wide{
  position:relative;
  z-index:1;
  width:min(1400px, calc(100% - 52px));
  margin-inline:auto;
}

.shell-wide{
  width:min(1540px, calc(100% - 18px));
}

.topbar-wrap{
  position:relative;
  padding:0 10px;
}

.topbar{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:14px 28px;
  color:#fff;
  background:linear-gradient(180deg, #174842 0%, #123d38 100%);
  border-radius:0 0 28px 28px;
  box-shadow:0 12px 26px rgba(18,47,43,.14);
  border:1px solid rgba(255,255,255,.06);
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:29px;
  font-weight:900;
  letter-spacing:-.04em;
  white-space:nowrap;
}

.nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:34px;
  flex:1;
  min-width:0;
  font-size:15px;
  font-weight:700;
}

.nav a{
  position:relative;
  color:rgba(255,252,247,.92);
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
  transition:color .18s ease, opacity .18s ease;
}

.nav a::after{
  content:"";
  position:absolute;
  right:0;
  bottom:-8px;
  width:100%;
  height:2px;
  background:rgba(255,255,255,.72);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .18s ease;
}

.nav a:hover{
  color:#fffdf7;
}

.nav a:hover::after{
  transform:scaleX(1);
}

.auth{
  display:flex;
  gap:12px;
  flex-shrink:0;
}

.btn{
  border:0;
  font-family:inherit;
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  border-radius:14px;
  padding:15px 24px;
  font-size:15px;
  font-weight:800;
}

.btn:hover,
.section-card:hover,
.track:hover,
.hybrid-link:hover{
  transform:translateY(-2px);
}

.btn.small{
  padding:11px 20px;
}

.btn-red{
  background:linear-gradient(180deg,#b54c39 0%,#963523 100%);
  color:#fff7f1;
  box-shadow:0 10px 24px rgba(121,41,26,.18);
}

.btn-ghost{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.58);
  box-shadow:none;
}

.btn-outline{
  background:linear-gradient(180deg,#fffdf7 0%,#f4ead6 100%);
  color:#17423d;
  border:1px solid rgba(161,126,84,.26);
  box-shadow:var(--shadow-soft);
}

.btn-paper{
  background:#f2dec4;
  color:#8c3526;
  border:1px solid rgba(149,105,60,.18);
}

.btn.light{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.45);
  box-shadow:none;
}

main{
  padding-top:28px;
}

.hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-areas:"poster copy";
  gap:34px;
  align-items:stretch;
  padding:18px 0 24px;
  min-width:0;
}

.poster-panel{
  grid-area:poster;
  display:flex;
  align-items:stretch;
  justify-content:center;
  position:relative;
  padding:8px 6px 8px 0;
  min-width:0;
}

.poster-frame{
  width:auto;
  max-width:min(100%, 650px);
  height:100%;
  aspect-ratio:1448 / 2048;
  background:#efe4ce;
  padding:22px;
  border-radius:16px;
  box-shadow:0 35px 70px rgba(65,44,20,.22),0 2px 0 #fff inset;
  transform:rotate(-2.2deg);
  position:relative;
  display:flex;
}

.poster-frame::after{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(104,78,45,.12);
  pointer-events:none;
}

.poster-frame img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  border-radius:10px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);
}

.tape{
  position:absolute;
  width:105px;
  height:36px;
  background:rgba(224,199,153,.72);
  z-index:2;
  box-shadow:0 2px 5px rgba(80,50,10,.12);
}

.tape-a{
  right:-16px;
  top:18px;
  transform:rotate(18deg);
}

.tape-b{
  left:-20px;
  bottom:18px;
  transform:rotate(18deg);
}

.hero-copy{
  grid-area:copy;
  text-align:center;
  padding:26px 24px 22px;
  background:rgba(250,244,231,.78);
  border:1px solid rgba(158,127,85,.24);
  border-radius:34px 34px 28px 28px;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}

.hero-copy::before{
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(166,131,87,.1);
  border-radius:inherit;
  pointer-events:none;
}

.hero-copy > *{
  position:relative;
  z-index:1;
}

.festival-logo{
  width:100%;
  display:flex;
  justify-content:center;
  align-items:center;
  margin-bottom:18px;
}

.festival-logo img{
  width:min(100%, 520px);
  height:auto;
  display:block;
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.06));
}

.hero h2{
  margin:12px 0 18px;
  color:var(--red);
  font-size:30px;
  font-weight:900;
  letter-spacing:-.02em;
}

.hero p{
  max-width:620px;
  margin:0 auto 28px;
  color:#50645d;
  font-size:18px;
  line-height:2.1;
}

.hero-actions{
  display:flex;
  justify-content:center;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:28px;
}

.stats{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:14px;
  border-top:1px solid rgba(161,126,84,.24);
  padding-top:18px;
}

.stats div{
  position:relative;
  padding:8px 8px 0;
}

.stats div::before{
  content:"";
  position:absolute;
  right:-7px;
  top:8px;
  bottom:8px;
  width:1px;
  background:rgba(161,126,84,.24);
}

.stats div:last-child::before{
  display:none;
}

.stats b{
  display:block;
  margin-bottom:5px;
  color:#96412d;
  font-size:28px;
  font-weight:900;
}

.stats span{
  display:block;
  color:#6d5b46;
  font-size:14px;
  font-weight:700;
}

.info-strip{
  display:grid;
  grid-template-columns:1fr 1fr 1fr 1.25fr;
  gap:14px;
  margin-top:4px;
}

.info-strip > div,
.secretariat{
  min-height:96px;
  padding:18px 24px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,249,237,.82);
  box-shadow:var(--shadow-soft);
}

.info-strip > div{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}

.info-strip strong{
  display:block;
  color:#5d4d3b;
  font-size:15px;
}

.info-strip em{
  display:block;
  margin-top:6px;
  font-style:normal;
  font-weight:800;
  color:#153f3b;
  line-height:1.8;
}

.dot{
  width:12px;
  height:12px;
  border-radius:50%;
  background:#43835e;
  box-shadow:0 0 0 8px rgba(67,131,94,.1);
}

.secretariat{
  border:0;
  color:#fff;
  text-align:center;
  display:block;
  background:linear-gradient(135deg,#0c554f,#083d39);
  font-size:21px;
  font-weight:900;
  font-family:inherit;
}

.secretariat small{
  display:block;
  margin-top:7px;
  color:#d9eee8;
  font-size:13px;
  font-family:inherit;
}

.section-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:46px 0 26px;
  font-size:31px;
}

.section-title span{
  position:relative;
  width:86px;
  height:1px;
  background:#b8a383;
}

.section-title span::after{
  content:"";
  position:absolute;
  top:-4px;
  left:50%;
  width:9px;
  height:9px;
  border:1px solid #b8a383;
  transform:translateX(-50%) rotate(45deg);
  background:var(--bg);
}

.festival-sections{
  margin-top:8px;
}

.section-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:20px;
}

.section-card{
  min-height:292px;
  padding:26px 26px 24px;
  border-radius:20px;
  border:1px solid var(--line);
  text-align:right;
  position:relative;
  overflow:hidden;
  background-color:#fffaf0;
  box-shadow:0 16px 30px rgba(80,45,20,.08);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  isolation:isolate;
}

.section-card::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--festival-section-image);
  background-position:center top;
  background-repeat:no-repeat;
  background-size:cover;
  z-index:0;
  opacity:.96;
}

.section-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(248,241,227,.02) 0%, rgba(247,240,225,.28) 34%, rgba(246,236,218,.86) 74%, rgba(244,233,212,.98) 100%);
  z-index:0;
}

.section-card.selected{
  box-shadow:inset 0 0 0 2px rgba(179,58,47,.12),0 22px 40px rgba(179,58,47,.13);
}

.section-card h4,
.section-card p,
.section-card a{
  position:relative;
  z-index:1;
}

.section-card h4{
  margin:0 0 12px;
  font-size:34px;
  line-height:1.18;
  letter-spacing:-.03em;
}

.section-card p{
  margin:0 0 18px;
  min-height:58px;
  max-width:88%;
  font-size:15px;
  line-height:1.85;
}

.section-card a{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(255,250,242,.72);
  border:1px solid rgba(127,97,61,.18);
  color:inherit;
  font-size:13px;
  font-weight:800;
  text-decoration:none;
  backdrop-filter:blur(4px);
}

.section-card.teal{
  color:#123f3b;
  border-color:rgba(70,111,103,.2);
}

.section-card.gold{
  color:#55483b;
  border-color:rgba(120,101,73,.18);
}

.section-card.red{
  color:#a23129;
  border-color:#deb2a9;
}

.section-card.teal::before{
  --festival-section-image:url('../img/festival/section-iran-jan.png');
}

.section-card.gold::before{
  --festival-section-image:url('../img/festival/section-special.png');
}

.section-card.red::before{
  --festival-section-image:url('../img/festival/section-winners.png');
}

.card-block{
  background:rgba(255,249,237,.82);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 12px 30px rgba(82,55,24,.08);
}

.tracks{
  margin-top:30px;
  padding:24px;
}

.block-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.block-head h3{
  margin:0;
  font-size:31px;
  line-height:1.35;
  text-align:right;
}

.back{
  border:1px solid rgba(161,126,84,.24);
  background:#fffdf4;
  border-radius:12px;
  min-height:44px;
  padding:0 16px;
  color:#15423e;
  font-family:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}

.track-grid{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:16px;
}

.track{
  min-height:188px;
  padding:22px 12px 18px;
  text-align:center;
  border-radius:16px;
  border:1px solid #e4d7c1;
  background:#fffbf2;
  box-shadow:var(--shadow-soft);
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.track:hover{
  border-color:#0c665f;
  box-shadow:0 14px 26px rgba(41,102,95,.12);
}

.track i{
  width:56px;
  height:56px;
  margin:0 auto 14px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(20,83,76,.08);
  border:1px solid rgba(20,83,76,.14);
  color:#0f5a53;
  font-style:normal;
  font-size:15px;
  font-weight:800;
}

.track h4{
  margin:0 0 8px;
  font-size:20px;
  line-height:1.42;
  min-height:58px;
}

.track p{
  margin:0 0 8px;
  color:#665f51;
  font-size:14px;
  line-height:1.8;
}

.track b,
.track span{
  display:block;
  font-size:13px;
  color:#103f3b;
}

.hybrid-two-column{
  margin-top:26px;
  margin-bottom:22px;
  display:grid;
  grid-template-columns:1.15fr .92fr;
  gap:20px;
  align-items:stretch;
  grid-auto-rows:1fr;
}

.hybrid-surface-card{
  background:rgba(255,249,237,.84);
  border:1px solid var(--line);
  border-radius:22px;
  box-shadow:0 14px 34px rgba(82,55,24,.08);
  padding:20px;
  height:100%;
}

.hybrid-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.hybrid-head-tools{
  display:flex;
  align-items:center;
  gap:10px;
}

.hybrid-carousel-nav{
  display:flex;
  align-items:center;
  gap:8px;
}

.hybrid-nav-btn{
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid rgba(161,126,84,.22);
  background:#fffdf4;
  color:#15423e;
  font-family:inherit;
  font-size:20px;
  line-height:1;
  cursor:pointer;
  box-shadow:var(--shadow-soft);
  transition:transform .18s ease, border-color .18s ease, background .18s ease;
}

.hybrid-nav-btn:hover{
  transform:translateY(-2px);
  border-color:rgba(21,66,62,.25);
}

.hybrid-nav-btn:disabled{
  opacity:.45;
  cursor:default;
  transform:none;
}

.hybrid-head h3{
  margin:0;
  font-size:30px;
  line-height:1.35;
  color:#143f3b;
  text-align:right;
}

.hybrid-link{
  border:1px solid rgba(161,126,84,.24);
  background:#fffdf4;
  color:#15423e;
  border-radius:999px;
  min-height:42px;
  padding:0 16px;
  font-family:inherit;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  box-shadow:var(--shadow-soft);
}

.hybrid-published-grid{
  margin-top:14px;
  display:flex;
  flex-wrap:nowrap;
  gap:14px;
  align-items:stretch;
}

.hybrid-carousel{
  margin-top:14px;
  overflow:hidden;
}

.hybrid-carousel .hybrid-published-grid,
.hybrid-carousel .hybrid-people-grid{
  margin-top:0;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:4px;
}

.hybrid-carousel .hybrid-published-grid::-webkit-scrollbar,
.hybrid-carousel .hybrid-people-grid::-webkit-scrollbar{
  display:none;
}

.hybrid-mini-post{
  flex:0 0 calc((100% - 28px) / 3);
  height:320px;
  display:grid;
  grid-template-rows:140px auto;
  align-content:start;
  padding:10px;
  border-radius:16px;
  border:1px solid rgba(160,125,85,.2);
  background:rgba(255,252,244,.9);
  box-shadow:0 10px 22px rgba(92,70,41,.06);
  scroll-snap-align:start;
}

.hybrid-mini-cover{
  width:100%;
  height:140px;
  padding:14px;
  display:grid;
  align-content:end;
  gap:4px;
  border-radius:12px;
  border:1px solid rgba(108,83,52,.14);
  overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18);
}

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

.hybrid-mini-cover--image{
  padding:0;
  background:#ece2cd;
}

.hybrid-mini-cover strong,
.hybrid-mini-cover span{
  display:block;
}

.hybrid-mini-cover strong{
  font-size:18px;
  font-weight:800;
}

.hybrid-mini-cover span{
  font-size:13px;
  font-weight:700;
}

.hybrid-mini-cover--deep{
  background:linear-gradient(145deg,#294841 0%,#192f2b 100%);
  color:#f4efe7;
}

.hybrid-mini-cover--paper{
  background:linear-gradient(145deg,#efe1c5 0%,#dbc39a 100%);
  color:#183b37;
}

.hybrid-mini-cover--book{
  background:linear-gradient(145deg,#8b5a32 0%,#d8bd8c 100%);
  color:#fff8ef;
}

.hybrid-mini-label{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:28px;
  margin-top:-14px;
  padding:0 10px;
  border-radius:999px;
  background:#2c7067;
  color:#f8f8f3;
  font-size:12px;
  font-weight:800;
  position:relative;
}

.hybrid-mini-post h4{
  margin:10px 0 6px;
  min-height:66px;
  color:#153f3b;
  font-size:21px;
  line-height:1.55;
}

.hybrid-mini-post p,
.hybrid-mini-post small{
  display:block;
  color:#6d5a45;
  font-weight:700;
}

.hybrid-mini-post p{
  margin:0 0 4px;
}

.hybrid-mini-post small{
  font-size:13px;
}

.hybrid-people-grid{
  display:flex;
  flex-wrap:nowrap;
  gap:14px;
  align-items:stretch;
}

.hybrid-secretariat{
  display:flex;
  flex-direction:column;
}

.hybrid-person-card{
  flex:0 0 calc((100% - 14px) / 2);
  height:320px;
  padding:16px 14px;
  display:flex;
  flex-direction:column;
  text-align:center;
  background:rgba(255,252,244,.76);
  border:1px solid rgba(160,125,85,.14);
  border-radius:16px;
  box-shadow:0 10px 22px rgba(92,70,41,.05);
  scroll-snap-align:start;
}

.hybrid-person-mark{
  width:84px;
  height:84px;
  flex:0 0 84px;
  aspect-ratio:1 / 1;
  margin:0 auto 12px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(145deg,#234942 0%,#4e7b74 100%);
  border:5px solid #e6d5b8;
  color:#fff8ef;
  font-size:30px;
  font-weight:900;
}

.hybrid-person-mark--alt{
  background:linear-gradient(145deg,#7f5c3f 0%,#3c5d57 100%);
}

.hybrid-person-mark--dark{
  background:linear-gradient(145deg,#163c38 0%,#385a54 100%);
}

.hybrid-person-card strong{
  display:block;
  margin-bottom:6px;
  color:#8f422d;
  font-size:13px;
}

.hybrid-person-card h4{
  margin:0 0 8px;
  min-height:62px;
  color:#153f3b;
  font-size:20px;
  line-height:1.55;
}

.hybrid-person-card p{
  margin:0;
  min-height:82px;
  color:#5d635b;
  font-size:14px;
  line-height:1.85;
}

.hybrid-my-works{
  margin-bottom:132px;
}

.hybrid-table-wrap{
  margin-top:14px;
  overflow:auto;
  border-radius:16px;
  border:1px solid rgba(163,129,91,.16);
  background:rgba(255,252,244,.58);
}

.hybrid-table{
  width:100%;
  min-width:880px;
  border-collapse:collapse;
}

.hybrid-table th,
.hybrid-table td{
  padding:16px 14px;
  text-align:right;
  border-bottom:1px solid rgba(160,125,85,.18);
}

.hybrid-table th{
  color:#715f48;
  font-size:15px;
  font-weight:800;
}

.hybrid-table td{
  color:#214842;
  font-size:16px;
  font-weight:700;
}

.hybrid-table tbody tr:hover{
  background:rgba(255,255,255,.4);
}

.hybrid-status{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  border:1px solid transparent;
}

.hybrid-status--review{
  background:#fff1cb;
  color:#8e6207;
  border-color:#efd7a0;
}

.hybrid-status--ok{
  background:#dff2df;
  color:#2c6e34;
  border-color:#b8dfb9;
}

.hybrid-status--fix{
  background:#ffe2d2;
  color:#a64523;
  border-color:#f2bda1;
}

.hybrid-status--sent{
  background:#e3eef8;
  color:#2b648d;
  border-color:#bfd6ea;
}

.sticky-cta{
  position:fixed;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  width:min(1403px, calc(100% - 34px));
  min-height:66px;
  padding:8px 12px;
  display:grid;
  grid-template-columns:156px minmax(0,1fr) 196px;
  align-items:center;
  gap:10px;
  color:#fff8f2;
  background:#03030352;
  backdrop-filter:blur(9px);
  border-radius:9px;
  box-shadow:0 14px 24px rgba(96,35,23,.2);
  border:1px solid rgba(255,234,208,.26);
  z-index:30;
  overflow:hidden;
}

.sticky-cta::before,
.sticky-cta::after{
  content:"";
  position:absolute;
  bottom:-18px;
  width:0;
  height:0;
  border-style:solid;
}

.sticky-cta::before{
  right:0;
  border-width:12px 18px 0 0;
  border-color:#5b150e transparent transparent transparent;
}

.sticky-cta::after{
  left:0;
  border-width:12px 0 0 18px;
  border-color:#5b150e transparent transparent transparent;
}

.sticky-cta > *{
  position:relative;
}

.sticky-cta .btn{
  min-height:46px;
  padding:0 16px;
  border-radius:11px;
  font-size:14px;
  font-weight:800;
}

.sticky-cta .btn-outline.light{
  color:rgba(255,248,240,.92);
  border-color:rgba(255,239,223,.3);
  background:rgba(255,255,255,.04);
}

.sticky-cta .btn-paper{
  background:rgba(246,224,196,.96);
  color:#8c3526;
  border-color:rgba(149,105,60,.12);
  box-shadow:none;
}

.sticky-cta b{
  display:block;
  text-align:center;
  font-size:18px;
  font-weight:850;
  line-height:1.15;
  letter-spacing:-.02em;
}

.sticky-cta span{
  display:block;
  margin-top:2px;
  text-align:center;
  color:rgba(255,236,220,.82);
  font-size:11.5px;
  line-height:1.45;
}

.modal{
  position:fixed;
  inset:0;
  display:none;
  place-items:center;
  background:rgba(7,27,25,.55);
  z-index:80;
}

.modal.show{
  display:grid;
}

.modal-box{
  position:relative;
  width:min(520px, 90vw);
  padding:30px;
  border-radius:20px;
  background:var(--paper);
  box-shadow:var(--shadow);
}

.modal-box h3{
  margin:0 0 10px;
  font-size:28px;
}

.modal-box p{
  margin:0 0 18px;
  color:var(--ink-soft);
  line-height:1.9;
}

.modal-box #close{
  position:absolute;
  left:18px;
  top:16px;
  border:0;
  background:transparent;
  font-size:30px;
  cursor:pointer;
}

@media (max-width:1280px){
  .hero{
    grid-template-columns:1fr 1fr;
    gap:24px;
  }

  .poster-frame{
    width:min(100%, 500px);
  }

  .track-grid{
    grid-template-columns:repeat(3, minmax(0,1fr));
  }

  .hybrid-published-grid{
    gap:14px;
  }

  .hybrid-mini-post{
    flex-basis:calc((100% - 14px) / 2);
  }
}

@media (max-width:1024px){
  .topbar{
    min-height:auto;
    flex-wrap:wrap;
    justify-content:center;
    padding:16px 20px;
  }

  .brand,
  .auth,
  .nav{
    width:100%;
    justify-content:center;
  }

  .hero{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "poster";
  }

  .poster-panel{
    padding:24px 12px;
  }

  .hero-copy{
    min-height:auto;
    padding:22px 18px 20px;
  }

  .info-strip{
    grid-template-columns:1fr 1fr;
  }

  .section-grid,
  .hybrid-two-column{
    grid-template-columns:1fr;
  }

  .hybrid-published-grid{
    gap:14px;
  }

  .hybrid-people-grid{
    gap:14px;
  }

  .hybrid-mini-post{
    flex-basis:calc((100% - 14px) / 2);
  }

  .hybrid-person-card{
    flex-basis:calc((100% - 14px) / 2);
  }

  .sticky-cta{
    grid-template-columns:1fr;
    gap:10px;
    text-align:center;
    padding:10px 12px;
  }
}

@media (max-width:760px){
  .shell,
  .shell-wide{
    width:min(1400px, calc(100% - 22px));
  }

  .topbar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "brand auth"
      "nav nav";
    align-items:center;
    justify-content:unset;
    border-radius:0 0 22px 22px;
    gap:12px 10px;
    padding:14px 16px;
    overflow:hidden;
  }

  .brand{
    grid-area:brand;
    min-width:0;
    font-size:24px;
    line-height:1.15;
  }

  .nav{
    grid-area:nav;
    width:100%;
    gap:10px;
    justify-content:flex-start;
    overflow:auto hidden;
    flex-wrap:nowrap;
    padding-bottom:4px;
    font-size:13px;
    scrollbar-width:none;
    min-width:0;
  }

  .nav::-webkit-scrollbar{
    display:none;
  }

  .nav a{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 12px;
    border-radius:999px;
    background:rgba(255,255,255,.08);
  }

  .nav a::after{
    display:none;
  }

  .auth{
    grid-area:auth;
    width:auto;
    min-width:0;
    justify-content:flex-end;
    flex-direction:row;
    gap:8px;
  }

  .auth .btn{
    min-height:38px;
    padding:0 14px;
    font-size:13px;
    border-radius:10px;
  }

  main{
    padding-top:18px;
  }

  .hero{
    gap:18px;
    padding-top:8px;
  }

  .poster-panel{
    overflow:hidden;
    padding:12px 4px 16px;
  }

  .poster-frame{
    max-width:min(100%, 360px);
    transform:rotate(-1deg);
  }

  .poster-frame::after{
    inset:10px;
  }

  .hero-copy{
    padding:20px 16px 18px;
    border-radius:26px;
  }

  .festival-logo img{
    max-width:360px;
  }

  .hero h2{
    font-size:25px;
  }

  .hero p{
    font-size:15px;
    line-height:1.95;
    margin-bottom:20px;
  }

  .hero-actions{
    flex-direction:column;
    margin-bottom:20px;
  }

  .hero-actions .btn{
    width:100%;
    min-height:48px;
  }

  .stats{
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:10px;
    padding-top:14px;
  }

  .stats div::before{
    display:none;
  }

  .stats b{
    font-size:24px;
  }

  .stats span{
    font-size:12px;
  }

  .info-strip{
    grid-template-columns:1fr;
  }

  .info-strip > div,
  .secretariat{
    min-height:84px;
    padding:16px 18px;
    min-width:0;
  }

  .section-title,
  .block-head h3,
  .hybrid-head h3{
    font-size:24px;
  }

  .section-grid,
  .track-grid{
    grid-template-columns:1fr;
  }

  .block-head,
  .hybrid-head{
    flex-direction:column;
    align-items:flex-start;
  }

  .hybrid-head{
    gap:12px;
  }

  .hybrid-head-tools{
    width:100%;
    justify-content:space-between;
  }

  .section-card{
    min-height:248px;
    padding:20px 18px 18px;
  }

  .section-card h4{
    font-size:28px;
  }

  .section-card p{
    max-width:100%;
    min-height:auto;
    font-size:14px;
    margin-bottom:14px;
  }

  .section-card a{
    min-height:34px;
    font-size:12px;
  }

  .track{
    min-height:168px;
    padding:18px 12px 16px;
  }

  .track h4{
    min-height:auto;
    font-size:18px;
  }

  .track p{
    font-size:13px;
  }

  .hybrid-surface-card{
    padding:16px;
    border-radius:18px;
    min-width:0;
  }

  .hybrid-carousel{
    overflow:visible;
  }

  .hybrid-published-grid{
    gap:12px;
  }

  .hybrid-mini-post{
    flex-basis:82%;
    gap:12px;
  }

  .hybrid-people-grid{
    gap:12px;
  }

  .hybrid-person-card{
    flex-basis:82%;
    gap:12px;
  }

  .hybrid-my-works{
    margin-bottom:156px;
  }

  .hybrid-mini-post,
  .hybrid-person-card{
    height:292px;
  }

  .hybrid-mini-post h4{
    min-height:auto;
    font-size:19px;
  }

  .hybrid-person-card h4{
    min-height:auto;
    font-size:18px;
  }

  .hybrid-person-card p{
    min-height:auto;
    font-size:13px;
  }

  .hybrid-person-mark{
    width:72px;
    height:72px;
    flex-basis:72px;
    font-size:24px;
  }

  .hybrid-table{
    min-width:640px;
  }

  .hybrid-table th,
  .hybrid-table td{
    padding:14px 10px;
    font-size:13px;
  }

  .sticky-cta{
    width:calc(100% - 18px);
    bottom:10px;
    min-height:auto;
    padding:10px;
  }

  .sticky-cta .btn{
    width:100%;
  }

  .sticky-cta b{
    font-size:18px;
  }

  .sticky-cta span{
    font-size:12px;
  }
}

body.festival-public-page{
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 16%, rgba(169,73,53,.07), transparent 21%),
    radial-gradient(circle at 88% 12%, rgba(44,102,93,.09), transparent 22%),
    linear-gradient(180deg,#f7f0e1 0%,#f1e6cf 100%);
}

body.festival-public-page .page-loader{
  display:none;
}

body.festival-public-page .bg-effects{
  opacity:.18;
}

body.festival-public-page .navbar{
  position:relative;
  margin:0 10px;
  border-radius:0 0 28px 28px;
  background:linear-gradient(180deg,#174842 0%,#123d38 100%);
  border:1px solid rgba(255,255,255,.06);
  box-shadow:0 12px 26px rgba(18,47,43,.14);
}

body.festival-public-page .navbar::after{
  content:"";
  position:absolute;
  inset:auto 20px 0;
  border-bottom:1px solid rgba(255,255,255,.06);
  pointer-events:none;
}

body.festival-public-page .navbar-inner{
  min-height:84px;
  padding:14px 28px;
}

body.festival-public-page .navbar-brand{
  gap:0;
}

body.festival-public-page .brand-icon{
  display:none;
}

body.festival-public-page .brand-name,
body.festival-public-page .nav-link,
body.festival-public-page .user-name-sm,
body.festival-public-page .dropdown-item,
body.festival-public-page .footer,
body.festival-public-page .footer a{
  color:#fffdf7;
}

body.festival-public-page .brand-name{
  background:none !important;
  -webkit-text-fill-color:currentColor !important;
  color:#fffdf7 !important;
  text-shadow:none;
  filter:none;
}

body.festival-public-page .nav-link,
body.festival-public-page .nav-link:hover,
body.festival-public-page .nav-link:focus-visible,
body.festival-public-page .nav-link.active{
  background:transparent !important;
  color:#fffdf7 !important;
  border-color:transparent !important;
  box-shadow:none !important;
}

body.festival-public-page .nav-link::after{
  background:rgba(255,255,255,.72);
}

body.festival-public-page .nav-link.active::after{
  background:rgba(255,255,255,.92);
}

body.festival-public-page .nav-icon-btn,
body.festival-public-page .user-menu-trigger,
body.festival-public-page .nav-toggle{
  background:rgba(255,255,255,.06) !important;
  border-color:rgba(255,255,255,.14) !important;
  box-shadow:none !important;
  color:#fffdf7;
}

body.festival-public-page .nav-icon-btn:hover,
body.festival-public-page .user-menu-trigger:hover,
body.festival-public-page .nav-toggle:hover,
body.festival-public-page .user-menu-trigger[aria-expanded="true"]{
  background:rgba(255,255,255,.11) !important;
  color:#fffdf7 !important;
}

body.festival-public-page .dropdown-menu{
  background:#18433e;
  border-color:rgba(255,255,255,.08);
}

body.festival-public-page button,
body.festival-public-page input,
body.festival-public-page select,
body.festival-public-page textarea{
  font-family:inherit;
}

body.festival-public-page .btn-primary{
  background:linear-gradient(180deg,#b54c39 0%,#963523 100%);
  border-color:transparent;
  color:#fff7f1;
  box-shadow:0 10px 24px rgba(121,41,26,.18);
}

body.festival-public-page .btn-ghost{
  color:#fff;
  border-color:rgba(255,255,255,.58);
}

body.festival-public-page .footer{
  margin:0 10px 14px;
  border-radius:28px;
  background:linear-gradient(180deg,#174842 0%,#123d38 100%);
  border:1px solid rgba(255,255,255,.06);
}

body.festival-public-page .footer-desc,
body.festival-public-page .footer h4,
body.festival-public-page .footer-bottom p{
  color:#ddede9;
}

body.festival-public-page .footer-logo span{
  display:none;
}

.festival-panels{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:1rem;
  margin-bottom:1.5rem;
}

.festival-section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}

.festival-section-heading h2,
.festival-section-heading h3{
  margin:0;
  font-size:1.2rem;
  color:#221734;
}

.festival-mini-box,
.festival-inline-list__item,
.festival-showcase-media,
.festival-file-placeholder{
  border-radius:20px;
}

.festival-mini-box{
  padding:1rem 1.1rem;
  border:1px solid rgba(118,90,52,.1);
  background:rgba(255,248,240,.84);
}

.festival-mini-box strong{
  display:block;
  color:#251828;
  margin-bottom:.35rem;
}

.festival-mini-box__value,
.festival-review-note{
  color:#5f4e5d;
  line-height:1.95;
}

.festival-review-criterion-desc{
  margin:.35rem 0 .7rem;
  color:#685b7b;
  line-height:1.8;
}

.festival-chip-row,
.festival-inline-meta{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.festival-chip,
.festival-file-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  padding:.5rem .84rem;
  border-radius:999px;
  text-decoration:none;
  font-size:.84rem;
  font-weight:800;
}

.festival-chip{
  background:rgba(122,94,58,.08);
  border:1px solid rgba(122,94,58,.08);
  color:#7b5e3c;
}

.festival-chip--solid{
  background:#7b5e3c;
  border-color:#7b5e3c;
  color:#fff;
}

.festival-chip--check{
  cursor:pointer;
}

.festival-file-pill{
  background:rgba(255,255,255,.82);
  border:1px solid rgba(118,90,52,.12);
  color:#3c2b3f;
}

.festival-inline-list{
  display:grid;
  gap:.85rem;
}

.festival-inline-list__item{
  padding:1rem 1.1rem;
  background:rgba(250,245,238,.96);
  border:1px solid rgba(118,90,52,.08);
}

.festival-inline-list__item strong{
  display:block;
  margin-bottom:.35rem;
  color:#241727;
}

.festival-inline-list__item span{
  color:#655567;
  line-height:1.95;
}

.festival-showcase-media{
  aspect-ratio:4 / 3;
  overflow:hidden;
  margin-bottom:.85rem;
  background:#efe7fa;
  display:flex;
  align-items:center;
  justify-content:center;
}

.festival-showcase-media img,
.festival-showcase-media video{
  width:100%;
  height:100%;
  object-fit:cover;
}

.festival-file-placeholder{
  padding:1.2rem;
  text-align:center;
  color:#5d4d5d;
}

.festival-file-placeholder strong{
  display:block;
  margin-top:.35rem;
  color:#231624;
}

.festival-admin-workspace{
  display:grid;
  gap:1rem;
}

.festival-admin-layout{
  display:grid;
  grid-template-columns:minmax(290px,320px) minmax(0,1fr);
  gap:1rem;
  align-items:start;
}

.festival-admin-content{
  display:grid;
  gap:1rem;
}

.festival-admin-card{
  background:linear-gradient(180deg, rgba(18,21,39,.95), rgba(12,15,29,.95));
  border:1px solid rgba(108,90,190,.16);
  color:#f3edff;
  box-shadow:0 24px 80px rgba(3,5,16,.35);
}

.festival-admin-card .festival-card__header h2,
.festival-admin-card .festival-card__header h3,
.festival-admin-card .festival-section-panel__meta h3,
.festival-admin-card .festival-admin-submission-card__head h3,
.festival-admin-card .festival-admin-list-card strong,
.festival-admin-card .festival-admin-summary-card strong,
.festival-admin-card .festival-form-block__head h3,
.festival-admin-card .festival-inline-list__item strong,
.festival-admin-card .festival-mini-box strong,
.festival-admin-card .festival-section-heading h2,
.festival-admin-card .festival-section-heading h3{
  color:#fff;
}

.festival-admin-card .festival-card__header p,
.festival-admin-card .festival-section-panel__meta p,
.festival-admin-card .festival-inline-list__item span,
.festival-admin-card .festival-form-block__head span,
.festival-admin-card .festival-empty-inline,
.festival-admin-card .festival-mini-box__value,
.festival-admin-card .festival-review-note,
.festival-admin-card .festival-review-criterion-desc{
  color:#c8bfd8;
}

.festival-admin-card .form-label{
  color:#efe7ff;
  font-weight:800;
}

.festival-admin-card .form-control{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
  font-family:inherit;
}

.festival-admin-card .form-control::placeholder{
  color:#bbaed1;
}

.festival-admin-card .festival-mini-box,
.festival-admin-card .festival-form-block,
.festival-admin-card .festival-inline-list__item,
.festival-admin-card .festival-section-panel,
.festival-admin-card .festival-empty-inline{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.08);
}

.festival-admin-card--sidebar{
  position:sticky;
  top:1rem;
}

.festival-admin-sidebar-list{
  display:grid;
  gap:.8rem;
}

.festival-admin-list-card{
  display:grid;
  gap:.45rem;
  padding:1rem;
  border-radius:22px;
  text-decoration:none;
  color:inherit;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
  transition:transform .18s ease, border-color .18s ease;
}

.festival-admin-list-card:hover,
.festival-admin-list-card.is-active{
  transform:translateY(-2px);
  border-color:rgba(198,150,255,.32);
}

.festival-admin-list-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}

.festival-admin-list-card p,
.festival-admin-code,
.festival-admin-track-list__item span{
  color:#bdaed0;
}

.festival-admin-summary{
  display:grid;
  gap:.85rem;
  grid-template-columns:repeat(4, minmax(0,1fr));
}

.festival-admin-summary-card{
  padding:1rem;
  border-radius:22px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
}

.festival-admin-summary-card strong{
  display:block;
  font-size:1.45rem;
  margin-bottom:.35rem;
}

.festival-admin-summary-card span{
  color:#bdaed0;
}

.festival-admin-tabbar{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}

.festival-admin-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.72rem 1rem;
  border-radius:999px;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
  color:#ddd2ef;
  font-weight:800;
}

.festival-admin-tab.is-active{
  background:linear-gradient(90deg, #8b5cf6, #ec4899);
  border-color:transparent;
  color:#fff;
}

.festival-admin-grid-2{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:1rem;
}

.festival-checklist{
  display:grid;
  gap:.8rem;
}

.festival-checklist__item{
  padding:.88rem 1rem;
  border-radius:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
  color:#e8def8;
}

.festival-checklist__item.is-done{
  border-color:rgba(52,211,153,.24);
  color:#d6ffe9;
}

.festival-admin-track-list{
  display:grid;
  gap:.65rem;
}

.festival-admin-track-list__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.9rem;
  padding:.9rem 1rem;
  border-radius:18px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.05);
}

.festival-filter-bar{
  display:grid;
  gap:.85rem;
  grid-template-columns:repeat(4, minmax(0,1fr));
  margin-bottom:1rem;
}

.festival-admin-submission-list{
  display:grid;
  gap:1rem;
}

.festival-admin-submission-card{
  padding:1rem;
  border-radius:24px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.06);
}

.festival-admin-submission-card__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
}

.festival-admin-submission-card__head h3{
  margin:0 0 .35rem;
}

.festival-admin-submission-card__head p{
  margin:0;
  color:#c8bfd8;
}

.festival-admin-submission-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin:.85rem 0;
}

.festival-admin-submission-card__actions,
.festival-admin-status-form{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  align-items:center;
}

.festival-admin-status-form{
  margin-top:.95rem;
}

.festival-table-wrap{
  width:100%;
  overflow:auto;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.08);
}

.festival-table{
  width:100%;
  border-collapse:collapse;
  min-width:780px;
}

.festival-table th,
.festival-table td{
  padding:.95rem 1rem;
  text-align:right;
  vertical-align:top;
  border-bottom:1px solid rgba(255,255,255,.06);
}

.festival-table th{
  background:rgba(255,255,255,.04);
  color:#f7f1ff;
  font-weight:800;
}

.festival-table td{
  color:#e2d7f0;
}

.festival-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.42rem .76rem;
  border-radius:999px;
  font-size:.82rem;
  font-weight:900;
}

.festival-admin-media-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:14px;
  margin-bottom:16px;
}

.festival-admin-media-grid--secondary{
  margin-top:-4px;
}

.festival-admin-media-card{
  display:grid;
  gap:10px;
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
}

.festival-admin-media-card small{
  color:#c8bfd8;
  font-size:12px;
  font-weight:800;
}

.festival-admin-media-card__preview{
  min-height:170px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.05);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  color:#ddd2ef;
  line-height:1.9;
  padding:12px;
}

.festival-admin-media-card__preview img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.festival-admin-media-card__preview.is-empty{
  min-height:120px;
}

.festival-admin-section-preview{
  width:126px;
  height:96px;
  flex:0 0 126px;
  overflow:hidden;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.05);
}

.festival-admin-section-preview img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.festival-admin-inline-media-form{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
  display:grid;
  gap:10px;
}

.festival-admin-inline-media-form .btn{
  justify-self:start;
}

.festival-admin-card .festival-status--draft,
.festival-admin-card .festival-status--submitted{
  background:rgba(59,130,246,.18);
  color:#bfdbfe;
}

.festival-admin-card .festival-status--published,
.festival-admin-card .festival-status--accepted{
  background:rgba(16,185,129,.18);
  color:#a7f3d0;
}

.festival-admin-card .festival-status--in_review,
.festival-admin-card .festival-status--needs_revision{
  background:rgba(245,158,11,.18);
  color:#fde68a;
}

.festival-admin-card .festival-status--rejected,
.festival-admin-card .festival-status--archived{
  background:rgba(239,68,68,.18);
  color:#fecaca;
}

.festival-admin-card,
.festival-admin-card *{
  box-sizing:border-box;
}

.festival-admin-card{
  border-radius:24px;
  padding:1.2rem;
  background:
    linear-gradient(180deg, rgba(22,25,46,.98), rgba(11,14,28,.98)),
    #101426;
  border:1px solid rgba(176,151,255,.14);
  color:#f6f1ff;
}

.festival-admin-card .festival-card__header{
  padding-bottom:1rem;
  margin-bottom:1rem;
  border-bottom:1px solid rgba(255,255,255,.07);
}

.festival-admin-card .festival-card__header:last-child{
  margin-bottom:0;
}

.festival-admin-card .festival-section-heading{
  margin-bottom:1rem;
}

.festival-admin-card .festival-card__header h2,
.festival-admin-card .festival-card__header h3,
.festival-admin-card .festival-section-heading h2,
.festival-admin-card .festival-section-heading h3,
.festival-admin-card .festival-form-block__head h3,
.festival-admin-card .festival-inline-list__item strong,
.festival-admin-card .festival-mini-box strong,
.festival-admin-card .festival-file-placeholder strong,
.festival-admin-card .festival-admin-summary-card strong,
.festival-admin-card .festival-admin-list-card strong,
.festival-admin-card .festival-admin-track-list__item strong,
.festival-admin-card .festival-admin-submission-card__head h3{
  color:#fff;
}

.festival-admin-card .festival-card__header p,
.festival-admin-card .festival-form-block__head span,
.festival-admin-card .festival-inline-list__item span,
.festival-admin-card .festival-mini-box__value,
.festival-admin-card .festival-review-note,
.festival-admin-card .festival-review-criterion-desc,
.festival-admin-card .festival-file-placeholder,
.festival-admin-card .festival-admin-summary-card span,
.festival-admin-card .festival-admin-list-card p,
.festival-admin-card .festival-admin-track-list__item span,
.festival-admin-card .festival-admin-submission-card__head p,
.festival-admin-card .festival-empty-inline{
  color:#cfc4df;
}

.festival-admin-card .festival-mini-box,
.festival-admin-card .festival-form-block,
.festival-admin-card .festival-inline-list__item,
.festival-admin-card .festival-section-panel,
.festival-admin-card .festival-empty-inline,
.festival-admin-card .festival-admin-summary-card,
.festival-admin-card .festival-admin-media-card,
.festival-admin-card .festival-admin-list-card,
.festival-admin-card .festival-admin-track-list__item,
.festival-admin-card .festival-admin-submission-card,
.festival-admin-card .festival-checklist__item,
.festival-admin-card .festival-showcase-media,
.festival-admin-card .festival-file-placeholder{
  background:linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.09);
  box-shadow:none;
}

.festival-admin-card .festival-chip,
.festival-admin-card .festival-file-pill{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  color:#efe8ff;
}

.festival-admin-card .festival-chip--solid{
  background:linear-gradient(90deg, #7c5cff 0%, #e944ad 100%);
  border-color:transparent;
  color:#fff;
  box-shadow:0 12px 26px rgba(124,92,255,.18);
}

.festival-admin-card .festival-chip--check{
  background:rgba(255,255,255,.055);
}

.festival-admin-card .festival-admin-list-card:hover,
.festival-admin-card .festival-admin-list-card.is-active{
  background:linear-gradient(180deg, rgba(124,92,255,.16), rgba(255,255,255,.045));
  border-color:rgba(198,150,255,.34);
}

.festival-admin-card .festival-admin-tab,
.festival-admin-card .btn-ghost,
.festival-admin-card .btn-secondary{
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.1);
  color:#eee7fb;
}

.festival-admin-card .btn-primary,
.festival-admin-card .festival-admin-tab.is-active{
  background:linear-gradient(90deg, #7c5cff 0%, #e944ad 100%);
  border-color:transparent;
  color:#fff;
  box-shadow:0 12px 28px rgba(124,92,255,.2);
}

.festival-admin-card .form-control,
.festival-admin-card select.form-control,
.festival-admin-card textarea.form-control{
  background:rgba(5,8,19,.72);
  border:1px solid rgba(255,255,255,.12);
  color:#fff;
  box-shadow:none;
}

.festival-admin-card .form-control:focus{
  border-color:rgba(198,150,255,.48);
  box-shadow:0 0 0 3px rgba(124,92,255,.14);
}

.festival-admin-card .festival-table-wrap{
  background:rgba(255,255,255,.035);
  border-color:rgba(255,255,255,.09);
}

.festival-admin-card .festival-table th{
  background:rgba(255,255,255,.06);
  color:#fff;
}

.festival-admin-card .festival-table td{
  color:#e7ddf7;
}

.festival-admin-card .festival-table tr:hover td{
  background:rgba(255,255,255,.035);
}

.festival-admin-card .festival-admin-media-card__preview,
.festival-admin-card .festival-admin-section-preview{
  background:rgba(5,8,19,.55);
  border-color:rgba(255,255,255,.1);
}

.festival-admin-card .festival-showcase-media{
  background:rgba(5,8,19,.55);
}

.festival-admin-card .festival-admin-code{
  color:#d9ccff;
}

.festival-admin-card .festival-inline-meta span{
  color:#d8cfee;
}

@media (max-width:1180px){
  .festival-panels,
  .festival-admin-layout,
  .festival-admin-grid-2,
  .festival-filter-bar{
    grid-template-columns:1fr;
  }

  .festival-admin-media-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media (max-width:760px){
  .festival-admin-card--sidebar{
    position:static;
  }

  .festival-admin-media-grid,
  .festival-filter-bar{
    grid-template-columns:1fr;
  }

  .festival-admin-summary{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .festival-admin-submission-card__head,
  .festival-section-heading{
    flex-direction:column;
    align-items:flex-start;
  }

  .festival-admin-track-list__item{
    flex-direction:column;
    align-items:flex-start;
  }

  .festival-admin-section-preview{
    width:100%;
    height:180px;
    flex-basis:auto;
  }
}

.festival-page-shell{
  padding:26px 0 140px;
}

.festival-notice{
  margin:0 auto 18px;
  width:min(1400px, calc(100% - 52px));
  padding:16px 18px;
  border-radius:16px;
  border:1px solid rgba(163,129,91,.18);
  background:rgba(255,252,244,.88);
  box-shadow:var(--shadow-soft);
  font-size:15px;
  font-weight:700;
}

.festival-notice--success{
  color:#1d5147;
}

.festival-empty-state--public{
  max-width:820px;
  margin:0 auto;
}

.festival-empty-state__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 14px;
  margin-bottom:16px;
  border-radius:999px;
  background:rgba(122,94,58,.08);
  color:#7b5e3c;
  font-size:13px;
  font-weight:800;
}

.festival-poster-media{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  border-radius:10px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.18);
  background:#efe4ce;
}

.poster-frame--placeholder{
  display:flex;
  align-items:stretch;
}

.info-card--link{
  min-height:96px;
  padding:18px 24px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,249,237,.82);
  box-shadow:var(--shadow-soft);
  color:inherit;
  text-decoration:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}

.info-card--link:hover{
  transform:translateY(-2px);
}

.festival-section-eyebrow{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:30px;
  margin-bottom:12px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,250,242,.72);
  border:1px solid rgba(127,97,61,.18);
  font-size:12px;
  font-weight:800;
}

.section-card h3{
  margin:0 0 12px;
  font-size:34px;
  line-height:1.18;
  letter-spacing:-.03em;
  position:relative;
  z-index:1;
}

.festival-section-cta{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:36px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(255,250,242,.72);
  border:1px solid rgba(127,97,61,.18);
  font-size:13px;
  font-weight:800;
}

.section-card.selected{
  border-color:rgba(140,68,45,.38);
}

.festival-section-panel{
  display:block;
}

.festival-section-panel[hidden]{
  display:none !important;
}

.festival-section-panel__intro{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
  padding-bottom:14px;
  border-bottom:1px solid rgba(160,125,85,.14);
}

.festival-section-panel__intro strong{
  color:#153f3b;
  font-size:18px;
  font-weight:900;
}

.festival-section-panel__intro p{
  margin:0;
  color:#6d5b46;
  font-size:14px;
  line-height:1.85;
}

.festival-empty-panel{
  min-height:160px;
  display:grid;
  place-items:center;
  padding:24px;
  text-align:center;
  color:#6e614f;
  font-size:15px;
  font-weight:700;
  line-height:1.9;
  border-radius:18px;
  border:1px dashed rgba(161,126,84,.34);
  background:rgba(255,251,243,.78);
}

.festival-empty-panel--soft{
  min-height:240px;
}

.track.festival-track-select{
  width:100%;
  text-align:center;
  font-family:inherit;
  cursor:pointer;
}

.track.festival-track-select.is-selected,
.track.festival-track-select:hover{
  border-color:#0c665f;
  box-shadow:0 14px 26px rgba(41,102,95,.12);
}

.hybrid-person-mark--image{
  overflow:hidden;
  padding:0;
  background:#eadcc3;
}

.hybrid-person-mark--image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.festival-table-title{
  margin-bottom:8px;
  color:#153f3b;
  font-size:16px;
  font-weight:800;
  line-height:1.65;
}

.festival-table-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.festival-table-links a{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(44,107,99,.08);
  color:#0f5a53;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}

.hybrid-status--pending{
  background:#fff1cb;
  color:#8e6207;
  border-color:#efd7a0;
}

.hybrid-status--draft,
.hybrid-status--submitted,
.hybrid-status--in_review{
  background:#fff1cb;
  color:#8e6207;
  border-color:#efd7a0;
}

.hybrid-status--accepted{
  background:#dff2df;
  color:#2c6e34;
  border-color:#b8dfb9;
}

.hybrid-status--published{
  background:#e2f0ea;
  color:#245d52;
  border-color:#bfddd2;
}

.hybrid-status--needs_changes,
.hybrid-status--needs_revision,
.hybrid-status--rejected,
.hybrid-status--archived{
  background:#ffe2d2;
  color:#a64523;
  border-color:#f2bda1;
}

.festival-modal-open{
  overflow:hidden;
}

.festival-modal{
  position:fixed;
  inset:0;
  z-index:90;
}

.festival-modal[hidden]{
  display:none;
}

.festival-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(7,27,25,.55);
  backdrop-filter:blur(4px);
}

.festival-modal__dialog{
  position:relative;
  width:min(1080px, calc(100% - 30px));
  max-height:min(88vh, 980px);
  margin:54px auto;
  padding:26px;
  overflow:auto;
  border-radius:26px;
  background:rgba(250,244,231,.98);
  box-shadow:0 28px 68px rgba(57,40,23,.18);
}

.festival-modal__dialog--submission{
  width:min(940px, calc(100% - 30px));
}

.festival-modal__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}

.festival-modal__header h2{
  margin:0 0 8px;
  color:#163f3b;
  font-size:32px;
  line-height:1.22;
}

.festival-modal__header p{
  margin:0;
  color:#5a635a;
  font-size:14px;
  line-height:1.9;
}

.festival-modal__close{
  width:44px;
  height:44px;
  border:1px solid rgba(161,126,84,.24);
  border-radius:50%;
  background:#fffdf4;
  color:#15423e;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}

.festival-modal__steps{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}

.festival-modal__step{
  min-height:82px;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid rgba(161,126,84,.18);
  background:rgba(255,252,244,.82);
  display:flex;
  align-items:center;
  gap:12px;
}

.festival-modal__step span{
  width:36px;
  height:36px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg,#b54c39 0%,#963523 100%);
  color:#fff7f1;
  font-size:14px;
  font-weight:900;
}

.festival-modal__step strong{
  color:#153f3b;
  font-size:15px;
  font-weight:800;
}

.festival-modal__body{
  display:grid;
  gap:18px;
}

.festival-modal-alert{
  padding:14px 16px;
  border-radius:14px;
  background:#ffe4d7;
  border:1px solid #f1bfa8;
  color:#8f3d20;
  font-size:14px;
  font-weight:700;
  line-height:1.9;
}

.festival-form-block{
  padding:20px;
  border-radius:20px;
  border:1px solid rgba(161,126,84,.16);
  background:rgba(255,252,244,.78);
}

.festival-form-block__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
  padding-bottom:12px;
  border-bottom:1px solid rgba(161,126,84,.12);
}

.festival-form-block__head h3{
  margin:0;
  color:#173b37;
  font-size:22px;
}

.festival-form-block__head span{
  color:#6d5b46;
  font-size:13px;
  font-weight:700;
}

.festival-form-grid{
  display:grid;
  gap:14px;
}

.festival-form-grid--3{
  grid-template-columns:repeat(3, minmax(0,1fr));
}

.festival-form-grid--2{
  grid-template-columns:repeat(2, minmax(0,1fr));
}

.festival-form-grid__span-2{
  grid-column:span 2;
}

.festival-form-grid__span-3{
  grid-column:span 3;
}

body.festival-public-page .form-group{
  display:flex;
  flex-direction:column;
  gap:8px;
}

body.festival-public-page .form-label{
  color:#5d4d3b;
  font-size:13px;
  font-weight:800;
}

body.festival-public-page .form-control{
  width:100%;
  min-height:52px;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid rgba(161,126,84,.18);
  background:#fffdf7;
  color:#173b37;
  font-family:inherit;
  font-size:15px;
  box-shadow:none;
}

body.festival-public-page textarea.form-control{
  min-height:120px;
  resize:vertical;
}

body.festival-public-page .form-control:focus{
  outline:none;
  border-color:#1e6e65;
  box-shadow:0 0 0 4px rgba(30,110,101,.08);
}

.festival-topic-grid{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.festival-topic-chip{
  position:relative;
  display:inline-flex;
  align-items:center;
}

.festival-topic-chip input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.festival-topic-chip span{
  display:inline-flex;
  align-items:center;
  min-height:40px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(161,126,84,.22);
  background:#fffdf7;
  color:#173b37;
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}

.festival-topic-chip input:checked + span{
  background:linear-gradient(180deg,#174842 0%,#123d38 100%);
  border-color:transparent;
  color:#fffdf7;
}

.festival-submission-overview{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}

.festival-submission-overview__card,
.festival-track-detail-box__item{
  padding:18px;
  border-radius:18px;
  border:1px solid rgba(161,126,84,.16);
  background:rgba(255,252,244,.82);
}

.festival-submission-overview__card small,
.festival-track-detail-box__item small{
  display:block;
  margin-bottom:8px;
  color:#6d5b46;
  font-size:12px;
  font-weight:800;
}

.festival-submission-overview__card strong,
.festival-track-detail-box__item strong{
  display:block;
  color:#173b37;
  font-size:17px;
  line-height:1.6;
}

.festival-submission-overview__card span{
  display:block;
  margin-top:6px;
  color:#6e614f;
  font-size:13px;
  line-height:1.85;
}

.festival-track-detail-box{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
}

.festival-modal__actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
}

.festival-field-error{
  margin-top:8px;
  color:#9c3f26;
  font-size:12px;
  font-weight:800;
  line-height:1.8;
}

.is-invalid{
  border-color:#cb6f4c !important;
  box-shadow:0 0 0 4px rgba(203,111,76,.08) !important;
}

.sticky-cta{
  align-items:center;
}

.sticky-cta__copy{
  min-width:0;
}

@media (max-width:1180px){
  .festival-form-grid--3{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }

  .festival-form-grid__span-3{
    grid-column:span 2;
  }
}

@media (max-width:1024px){
  body.festival-public-page .navbar-inner{
    min-height:auto;
    padding:16px 20px;
  }

  .festival-page-shell{
    padding-top:20px;
  }

  .festival-modal__dialog{
    margin:40px auto;
  }
}

@media (max-width:760px){
  body.festival-public-page .navbar{
    margin:0 6px;
    border-radius:0 0 22px 22px;
  }

  body.festival-public-page .navbar-inner{
    padding:14px 16px;
  }

  .festival-page-shell{
    padding-bottom:170px;
  }

  .festival-notice{
    width:min(1400px, calc(100% - 22px));
    padding:14px 16px;
    font-size:14px;
  }

  .festival-section-panel__intro,
  .festival-form-block__head,
  .festival-modal__header,
  .festival-modal__actions{
    flex-direction:column;
    align-items:flex-start;
  }

  .festival-modal__dialog,
  .festival-modal__dialog--submission{
    width:calc(100% - 18px);
    margin:18px auto;
    max-height:calc(100vh - 36px);
    padding:18px 14px;
    border-radius:18px;
  }

  .festival-modal__steps,
  .festival-submission-overview,
  .festival-track-detail-box,
  .festival-form-grid--2,
  .festival-form-grid--3{
    grid-template-columns:1fr;
  }

  .festival-form-grid__span-2,
  .festival-form-grid__span-3{
    grid-column:auto;
  }

  .festival-form-block{
    padding:16px;
  }

  .festival-modal__step{
    min-height:70px;
  }

  .hybrid-table-wrap{
    overflow:auto hidden;
  }

  .hybrid-table{
    min-width:720px;
  }

  .festival-table-title{
    font-size:14px;
  }

  .festival-table-links{
    gap:6px;
  }
}

.festival-admin-card .festival-notice,
.festival-admin-card .festival-empty-state__badge,
.festival-admin-card .info-card--link,
.festival-admin-card .festival-section-eyebrow,
.festival-admin-card .festival-section-cta,
.festival-admin-card .festival-empty-panel,
.festival-admin-card .festival-modal__step,
.festival-admin-card .festival-form-block,
.festival-admin-card .festival-topic-chip span,
.festival-admin-card .festival-submission-overview__card,
.festival-admin-card .festival-track-detail-box__item,
.festival-admin-card .festival-poster-media,
.festival-admin-card .hybrid-person-mark--image{
  background:linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.035));
  border-color:rgba(255,255,255,.1);
  color:#efe8ff;
}

.festival-admin-card .festival-section-panel__intro{
  border-bottom-color:rgba(255,255,255,.08);
}

.festival-admin-card .festival-section-panel__intro strong,
.festival-admin-card .festival-table-title,
.festival-admin-card .festival-modal__step strong,
.festival-admin-card .festival-form-block__head h3,
.festival-admin-card .festival-topic-chip span,
.festival-admin-card .festival-submission-overview__card strong,
.festival-admin-card .festival-track-detail-box__item strong{
  color:#fff;
}

.festival-admin-card .festival-section-panel__intro p,
.festival-admin-card .festival-empty-panel,
.festival-admin-card .festival-form-block__head span,
.festival-admin-card .festival-submission-overview__card small,
.festival-admin-card .festival-track-detail-box__item small,
.festival-admin-card .festival-submission-overview__card span{
  color:#cfc4df;
}

.festival-admin-card .hybrid-status--pending,
.festival-admin-card .hybrid-status--draft,
.festival-admin-card .hybrid-status--submitted,
.festival-admin-card .hybrid-status--in_review{
  background:rgba(245,158,11,.16);
  border-color:rgba(245,158,11,.24);
  color:#fde68a;
}

.festival-admin-card .hybrid-status--accepted,
.festival-admin-card .hybrid-status--published{
  background:rgba(16,185,129,.16);
  border-color:rgba(16,185,129,.24);
  color:#a7f3d0;
}

.festival-admin-card .hybrid-status--needs_changes,
.festival-admin-card .hybrid-status--needs_revision,
.festival-admin-card .hybrid-status--rejected,
.festival-admin-card .hybrid-status--archived{
  background:rgba(239,68,68,.16);
  border-color:rgba(239,68,68,.24);
  color:#fecaca;
}

.festival-admin-card .festival-field-error{
  color:#fca5a5;
}
