:root{--ink:#171512;--paper:#f8f1e4;--tomato:#d8412f;--gold:#f2b94b;--line:#cbbda8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif}header{min-height:72px;padding:14px max(20px,calc((100vw - 1100px)/2));display:grid;grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);align-items:center;gap:18px;border-bottom:2px solid var(--ink)}.brand-group{display:flex;flex-direction:column;gap:.2rem}.brand{font-weight:800;color:inherit;text-decoration:none;font-size:1.15rem}.festival-location{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#70685e}.primary-nav{display:grid;grid-template-columns:repeat(3,auto);border:2px solid var(--ink);background:#fffaf1;box-shadow:3px 3px 0 var(--ink)}.primary-nav a{padding:.65rem .9rem;border-right:1px solid var(--ink);color:var(--ink);font-weight:800;text-decoration:none;text-align:center;white-space:nowrap}.primary-nav a:last-child{border-right:0}.primary-nav a:hover,.primary-nav a[aria-current="page"]{background:var(--gold)}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px}.festival-link{color:var(--ink);font-weight:800;text-underline-offset:3px}.account{display:flex;align-items:center;gap:.7rem;min-width:0;flex-wrap:wrap}.account>span{min-width:0;overflow-wrap:anywhere}.account img,.review img{width:38px;height:38px;border-radius:50%;object-fit:cover}.account form{margin:0}button,.button{border:2px solid var(--ink);background:var(--tomato);color:#fff;padding:.7rem 1rem;font:inherit;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}main{max-width:1100px;margin:auto;padding:36px 20px 80px}.hero{max-width:760px;padding:10vh 0}.hero h1,.intro h1,.detail-head h1{font-size:clamp(2.4rem,8vw,5.8rem);line-height:.92;letter-spacing:-.06em;margin:.2em 0}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-weight:800;color:var(--tomato)}.about-page{max-width:900px}.about-page h1{font-size:clamp(2.4rem,7vw,5rem);line-height:.95;letter-spacing:-.05em;margin:.25em 0}.about-lead{max-width:720px;font-size:1.2rem;line-height:1.6}.about-byline{display:inline-block;margin:6px 0 4px;padding:10px 14px;border:2px solid var(--ink);background:var(--gold);box-shadow:3px 3px 0 var(--ink)}.obfuscated-email{font-weight:800;white-space:nowrap}.privacy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:32px 0}.privacy-grid article,.privacy-note{border:2px solid var(--ink);background:#fffaf1;padding:22px}.privacy-grid h2{margin-top:0}.privacy-grid p,.privacy-note{line-height:1.6}.privacy-note{background:var(--gold)}.leaderboard-page h1{font-size:clamp(2.8rem,7vw,5.5rem);line-height:.92;letter-spacing:-.06em;margin:.2em 0}.leaderboard-intro{max-width:720px;font-size:1.05rem;line-height:1.55}.leaderboard-stats{display:flex;gap:12px;margin:20px 0}.leaderboard-stats div{min-width:130px;padding:12px 16px;border:2px solid var(--ink);background:var(--gold);box-shadow:3px 3px 0 var(--ink)}.leaderboard-stats dt{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.leaderboard-stats dd{margin:2px 0 0;font-size:1.65rem;font-weight:800;font-variant-numeric:tabular-nums}.leaderboard-signin-note{max-width:720px;margin:16px 0 0;padding:10px 14px;border-left:5px solid var(--gold);background:#fffaf1;font-weight:800}.leaderboard-method{max-width:780px;margin:24px 0 0;border:2px solid var(--ink);background:#fffaf1;box-shadow:4px 4px 0 var(--ink)}.leaderboard-method summary{padding:14px 18px;font-weight:800;cursor:pointer}.leaderboard-method-body{padding:0 18px 18px;border-top:1px solid var(--line);line-height:1.5}.category-baselines{display:flex;flex-wrap:wrap;gap:8px 18px;margin:14px 0}.category-baselines div{display:flex;gap:6px}.category-baselines dt{font-weight:800}.category-baselines dd{margin:0;font-variant-numeric:tabular-nums}.method-footnote{margin-bottom:0;color:#70685e}.leaderboard-section-title{margin:34px 0 14px;font-size:1.6rem}.leaderboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.leaderboard-panel{border:2px solid var(--ink);background:#fffaf1;box-shadow:5px 5px 0 var(--ink)}.leaderboard-panel-head{padding:16px 18px;border-bottom:2px solid var(--ink);background:var(--tomato);color:#fff}.leaderboard-panel-head h3{margin:0;font-size:1.35rem}.leaderboard-panel:nth-child(2) .leaderboard-panel-head{background:#a93628}.leaderboard-panel:nth-child(3) .leaderboard-panel-head{background:#74251e}.leaderboard-list{list-style:none;margin:0;padding:0}.leaderboard-row{display:grid;grid-template-columns:2.6rem minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:15px 16px;border-bottom:1px solid var(--line)}.leaderboard-row:last-child{border-bottom:0}.leaderboard-row.is-first{background:var(--gold)}.leaderboard-rank{grid-row:1/3;font-size:1.15rem;font-weight:800}.leaderboard-row a{color:inherit;font-weight:800;line-height:1.2}.leaderboard-score{grid-column:3;grid-row:1/3;font-size:1.35rem;font-weight:800;font-variant-numeric:tabular-nums}.leaderboard-count{grid-column:2;font-size:.78rem;color:#70685e}.provisional-section{margin-top:54px;padding-top:30px;border-top:3px solid var(--ink)}.provisional-section>h2{margin:0;font-size:2rem}.provisional-section>p{max-width:680px;line-height:1.5}.provisional-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}.provisional-panel{border:2px solid var(--ink);background:#f4ecdf;box-shadow:4px 4px 0 var(--ink)}.provisional-panel h3{margin:0;padding:14px 16px;border-bottom:2px solid var(--ink);background:#eee4d3;font-size:1.15rem}.provisional-list{list-style:none;margin:0;padding:0}.provisional-panel .leaderboard-row{grid-template-columns:minmax(0,1fr) auto}.provisional-panel .leaderboard-row a{grid-column:1}.provisional-panel .leaderboard-score{grid-column:2}.provisional-panel .leaderboard-count{grid-column:1}.leaderboard-row.is-provisional{color:#665e54}.leaderboard-empty{margin-top:32px;border:2px solid var(--ink);background:#fffaf1;padding:28px;max-width:620px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.card{position:relative;border:2px solid var(--ink);padding:22px;color:inherit;text-decoration:none;background:#fffaf1;min-height:190px;transition:transform .15s}.card:hover{transform:translateY(-4px)}.card h2{font-size:1.45rem}.number{display:inline-block;background:var(--gold);border:2px solid var(--ink);padding:.2rem .45rem;font-weight:800}.muted{color:#70685e}.back{color:inherit}.detail-head{margin:32px 0}.score{font-size:1.3rem;font-weight:800}.rating-form{border:2px solid var(--ink);background:#fffaf1;padding:clamp(16px,4vw,32px)}.remove-rating-form{margin:18px 0 42px;padding:18px;border:2px solid var(--ink);background:#fffaf1}.remove-rating-form .danger{background:#7d2118}.remove-rating-form p{margin:.8rem 0 0}fieldset{border:0;padding:0;margin:0 0 28px}legend{font-weight:800;font-size:1.35rem;margin-bottom:10px}.choices{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.choices input{position:absolute;opacity:0}.choices span{display:flex;min-height:80px;border:2px solid var(--ink);align-items:center;justify-content:center;flex-direction:column;padding:8px;cursor:pointer;text-align:center}.choices b{font-size:1.5rem}.choices input:checked+span{background:var(--gold);box-shadow:4px 4px 0 var(--ink)}.choices input:focus-visible+span{outline:4px solid #1864ab;outline-offset:2px}.review{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:14px 0}.review div{display:flex;align-items:center;gap:10px}@media(max-width:900px){.leaderboard-grid,.provisional-grid{grid-template-columns:1fr}}@media(max-width:760px){header{grid-template-columns:1fr auto;align-items:center}.primary-nav{grid-column:1/-1;grid-row:2;width:100%}}@media(max-width:620px){header{align-items:start}.header-actions{width:auto}.primary-nav a{padding:.7rem .35rem;font-size:.88rem}.festival-link{font-size:.92rem}.account span,.account img{display:none}.choices{grid-template-columns:1fr 1fr}.choices span{min-height:92px}.hero h1,.intro h1,.detail-head h1{font-size:3rem}}

.obfuscated-email { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

.directory-filters, .form-page form { display: grid; gap: .75rem; margin: 1rem 0; }
.directory-filters { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); align-items: end; }
.directory-filters label, .form-page label { display: grid; gap: .3rem; font-weight: 700; }
input, select, textarea { width: 100%; box-sizing: border-box; padding: .7rem; border: 1px solid var(--line); border-radius: .45rem; font: inherit; background: var(--paper); color: var(--ink); }
textarea { min-height: 8rem; resize: vertical; }
.form-errors { border-left: .3rem solid var(--tomato); padding: .25rem .75rem; background: #fff0ed; }
.intro > .button { display: inline-block; margin: .75rem 0 1.25rem; }
.account-button { border: 2px solid var(--ink); background: #fffaf1; color: var(--ink); padding: .5rem .7rem; font-weight: 800; text-decoration: none; box-shadow: 2px 2px 0 var(--ink); }
.account-button:hover, .account-button:focus-visible { background: var(--gold); }

@media (max-width: 1200px) {
  header { grid-template-columns: minmax(0, 1fr); }
  .brand-group { grid-column: 1 / -1; width: 100%; min-width: 0; }
  .primary-nav { grid-column: 1 / -1; width: 100%; min-width: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .primary-nav a { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
  .header-actions { grid-column: 1 / -1; width: 100%; min-width: 0; justify-content: flex-start; }
}

@media (max-width: 600px) {
  header { grid-template-columns: 1fr; }
  .header-actions {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    justify-content: flex-start;
  }
}
