@import url('https://fonts.googleapis.com/css2?family=Zilla+Slab:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Serif+SC:wght@400;600;700&family=Noto+Nastaliq+Urdu:wght@400;600;700&display=swap');
/* ===== Original register styles ===== */

  :root{
    --ink:#16232F;
    --ink-soft:#2C3E4E;
    --paper:#E9E4D6;
    --paper-deep:#DDD6C2;
    --line:#B8AF97;
    --seal:#B5342A;
    --seal-deep:#8C271F;
    --gold:#A9862F;
    --white:#FBF9F3;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Zilla Slab', Georgia, serif;
    -webkit-font-smoothing:antialiased;
  }
  .mono{font-family:'IBM Plex Mono', monospace;}

  /* ===== HEADER / MANIFEST HEAD ===== */
  header{
    background:var(--ink);
    color:var(--white);
    padding:64px 8vw 48px;
    position:relative;
    border-bottom:6px solid var(--seal);
  }
  .manifest-no{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:0.08em;
    color:#8FA3B0;
    margin-bottom:18px;
  }
  h1{
    font-size:clamp(2.4rem, 5vw, 4rem);
    font-weight:700;
    line-height:1.05;
    margin:0 0 18px;
    max-width:14ch;
  }
  header p.lede{
    max-width:56ch;
    font-size:1.15rem;
    line-height:1.55;
    color:#C9D2D8;
    margin:0 0 28px;
  }
  .stamp{
    position:absolute;
    top:56px;
    right:8vw;
    width:118px;
    height:118px;
    opacity:0.92;
  }
  .header-stats{
    display:flex;
    gap:40px;
    flex-wrap:wrap;
    border-top:1px solid #3A4C5B;
    padding-top:24px;
    margin-top:8px;
  }
  .header-stats div{font-family:'IBM Plex Mono', monospace;}
  .header-stats .num{font-size:1.8rem; font-weight:600; color:var(--white);}
  .header-stats .label{font-size:0.78rem; color:#8FA3B0; letter-spacing:0.03em;}

  /* ===== CONTROLS ===== */
  .controls{
    background:var(--white);
    border-bottom:1px solid var(--line);
    padding:20px 8vw;
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    align-items:center;
    position:sticky;
    top:0;
    z-index:10;
  }
  .controls input[type="text"]{
    flex:1;
    min-width:220px;
    padding:11px 14px;
    border:1px solid var(--line);
    background:var(--paper);
    font-family:'IBM Plex Mono', monospace;
    font-size:0.92rem;
    color:var(--ink);
  }
  .controls input[type="text"]:focus{outline:2px solid var(--seal); outline-offset:1px;}
  select{
    padding:11px 12px;
    border:1px solid var(--line);
    background:var(--paper);
    font-family:'IBM Plex Mono', monospace;
    font-size:0.88rem;
    color:var(--ink);
  }
  .count-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.82rem;
    color:var(--ink-soft);
    white-space:nowrap;
  }

  /* ===== REGION SECTIONS ===== */
  main{padding:8px 8vw 80px;}
  .region{margin-top:56px;}
  .region-head{
    display:flex;
    align-items:baseline;
    gap:16px;
    border-bottom:2px solid var(--ink);
    padding-bottom:10px;
    margin-bottom:4px;
  }
  .region-head h2{
    font-size:1.5rem;
    margin:0;
    font-weight:600;
  }
  .region-head .region-count{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.8rem;
    color:var(--ink-soft);
  }

  .entry{
    display:grid;
    grid-template-columns: 1.1fr 1.6fr 1.6fr 0.9fr 1fr;
    gap:18px;
    padding:22px 0;
    border-bottom:1px solid var(--line);
    align-items:start;
  }
  .entry:hover{background:rgba(255,255,255,0.35);}
  .entry .field-label{
    display:none;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.68rem;
    letter-spacing:0.05em;
    color:var(--ink-soft);
    margin-bottom:4px;
  }
  .loc .city{font-weight:600; font-size:1.05rem;}
  .loc .province{font-family:'IBM Plex Mono', monospace; font-size:0.8rem; color:var(--ink-soft); margin-top:2px;}
  .venue-name{font-weight:600; line-height:1.35;}
  .event-name{line-height:1.4;}
  .event-name .edition{color:var(--seal-deep); font-family:'IBM Plex Mono', monospace; font-size:0.78rem; display:block; margin-top:8px;}
  .event-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:5px;}
  .event-list li{
    position:relative; padding-left:13px; font-size:0.92rem; line-height:1.4;
  }
  .event-list li::before{
    content:"·"; position:absolute; left:0; top:0;
    color:var(--seal-deep); font-weight:700;
  }
  .event-list li a{
    color:var(--ink); text-decoration:none; border-bottom:1px solid var(--seal-deep-a, rgba(139,58,58,0.35));
    transition:color 0.15s, border-color 0.15s;
  }
  .event-list li a:hover{ color:var(--seal-deep); border-bottom-color:var(--seal-deep); }
  .event-list li a::after{
    content:"↗"; display:inline-block; margin-left:3px; font-size:0.78em; opacity:0.6; transform:translateY(-1px);
  }
  .date-cell{font-family:'IBM Plex Mono', monospace; font-size:0.88rem; color:var(--ink);}
  .date-cell .tag{
    display:inline-block;
    margin-top:6px;
    font-size:0.68rem;
    padding:2px 7px;
    border:1px solid var(--gold);
    color:var(--gold);
    letter-spacing:0.03em;
  }
  .directory a{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.82rem;
    color:var(--seal-deep);
    text-decoration:none;
    border-bottom:1px solid var(--seal-deep);
  }
  .directory a:hover{color:var(--seal); border-color:var(--seal);}
  .directory .none{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.82rem;
    color:#8B8368;
    font-style:italic;
  }
  .contact-btn{
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin-top:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.74rem;
    letter-spacing:0.03em;
    color:var(--ink-soft);
    background:none;
    border:1px solid var(--line);
    padding:4px 9px;
    cursor:pointer;
    -webkit-appearance:none;
  }
  .contact-btn:hover{border-color:var(--gold); color:var(--gold);}
  .contact-btn .ic{font-size:0.86em;}

  /* ===== CONTACT CARD MODAL ===== */
  .contact-overlay{
    position:fixed; inset:0;
    background:rgba(22,35,47,0.72);
    display:flex; align-items:center; justify-content:center;
    padding:24px;
    z-index:100;
  }
  .contact-overlay.hidden{display:none !important;}
  .contact-modal{
    background:var(--white);
    border:1px solid var(--line);
    border-top:5px solid var(--seal);
    max-width:480px; width:100%;
    max-height:86vh; overflow-y:auto;
    position:relative;
    padding:34px 32px 28px;
    box-shadow:0 24px 60px rgba(22,35,47,0.4);
  }
  .contact-close{
    position:absolute; top:14px; right:16px;
    background:none; border:none; cursor:pointer;
    font-family:'IBM Plex Mono', monospace;
    font-size:1.1rem; color:var(--ink-soft); line-height:1;
    padding:4px;
  }
  .contact-close:hover{color:var(--seal);}
  .contact-modal .cm-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.7rem; letter-spacing:0.08em; color:var(--seal-deep);
    text-transform:uppercase; margin-bottom:10px;
  }
  .contact-modal h3{
    font-size:1.4rem; margin:0 0 6px; line-height:1.2; max-width:none;
  }
  .contact-modal .cm-loc{
    font-family:'IBM Plex Mono', monospace; font-size:0.82rem;
    color:var(--ink-soft); margin-bottom:22px; padding-bottom:18px;
    border-bottom:1px solid var(--line);
  }
  .cm-rows{display:flex; flex-direction:column; gap:16px;}
  .cm-row .cm-label{
    font-family:'IBM Plex Mono', monospace; font-size:0.68rem;
    letter-spacing:0.06em; color:var(--ink-soft); text-transform:uppercase;
    margin-bottom:4px;
  }
  .cm-row .cm-val{font-size:1rem; line-height:1.5;}
  .cm-row .cm-val a{color:var(--seal-deep); text-decoration:none; border-bottom:1px solid var(--seal-deep);}
  .cm-row .cm-val a:hover{color:var(--seal);}
  .cm-row .cm-val.unavailable{color:#8B8368; font-style:italic; font-size:0.92rem;}
  .contact-modal .cm-footnote{
    margin-top:24px; padding-top:16px; border-top:1px solid var(--line);
    font-size:0.78rem; color:var(--ink-soft); line-height:1.5;
  }
  .contact-modal .cm-footnote a{color:var(--seal-deep);}

  .col-head{
    display:grid;
    grid-template-columns: 1.1fr 1.6fr 1.6fr 0.9fr 1fr;
    gap:18px;
    padding:10px 0 8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.7rem;
    letter-spacing:0.06em;
    color:var(--ink-soft);
    border-bottom:1px solid var(--ink);
  }

  .hidden{display:none !important;}

  /* ===== FOOTNOTE ===== */
  .footnote{
    max-width:70ch;
    margin:64px auto 0;
    font-size:0.92rem;
    line-height:1.6;
    color:var(--ink-soft);
    padding-top:24px;
    border-top:1px solid var(--line);
  }

  footer{
    background:var(--ink);
    color:#8FA3B0;
    padding:32px 8vw;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:8px;
  }

  @media (max-width: 860px){
    .col-head{display:none;}
    .entry{grid-template-columns:1fr; gap:6px; padding:20px 0;}
    .entry .field-label{display:block;}
    .stamp{display:none;}
    header{padding:48px 6vw 36px;}
    .controls{padding:16px 6vw;}
    main{padding:8px 6vw 60px;}
  }

/* ===== Site bar: page links + language switch ===== */
.sitebar{
  background:var(--ink); color:#8FA3B0;
  display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  padding:12px 8vw; border-bottom:1px solid #3A4C5B;
  font-family:'IBM Plex Mono', monospace; font-size:0.8rem;
}
.sitebar nav{display:flex; gap:22px; flex-wrap:wrap;}
.sitebar a{color:#C9D2D8; text-decoration:none; padding:4px 0; border-bottom:2px solid transparent;}
.sitebar a:hover{color:var(--white);}
.sitebar a[aria-current]{color:var(--white); border-bottom-color:var(--seal);}
.switches{display:flex; gap:14px; flex-wrap:wrap;}
.lang-switch, .country-switch{display:flex; gap:4px;}
.country-switch a{padding:4px 10px; border:1px solid #3A4C5B;}
.country-switch a[aria-current]{background:var(--gold); border-color:var(--gold); color:var(--ink);}
.lang-switch a{padding:4px 10px; border:1px solid #3A4C5B; border-bottom-width:1px;}
.lang-switch a[aria-current]{background:var(--seal); border-color:var(--seal); color:var(--white);}
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.names-note{font-size:0.86rem; margin-top:10px; color:var(--ink-soft);}
.empty-state{padding:48px 0; font-size:1.1rem; color:var(--ink-soft); max-width:60ch;}

/* ===== Chinese ===== */
html[lang="zh-CN"] body{font-family:'Noto Serif SC', 'Zilla Slab', serif;}
html[lang="zh-CN"] header p.lede{line-height:1.8;}
html[lang="zh-CN"] h1{letter-spacing:0.04em; max-width:12em;}

/* ===== Urdu (right-to-left) ===== */
html[dir="rtl"] body{font-family:var(--rtl-font, 'Noto Nastaliq Urdu'), 'Zilla Slab', serif;}
html[dir="rtl"] h1{line-height:1.9; max-width:none; font-size:clamp(2rem, 4.2vw, 3.2rem);}
html[dir="rtl"] header p.lede, html[dir="rtl"] .footnote, html[dir="rtl"] .cm-footnote{line-height:2.2;}
html[dir="rtl"] .region-head h2, html[dir="rtl"] .venue-name, html[dir="rtl"] .event-name{line-height:2;}
html[dir="rtl"] .header-stats .label, html[dir="rtl"] .col-head, html[dir="rtl"] .field-label,
html[dir="rtl"] .cm-label, html[dir="rtl"] .cm-tag, html[dir="rtl"] .contact-btn,
html[dir="rtl"] .directory a, html[dir="rtl"] .directory .none, html[dir="rtl"] .count-tag,
html[dir="rtl"] .manifest-no, html[dir="rtl"] .sitebar, html[dir="rtl"] .switches a, html[dir="rtl"] footer, html[dir="rtl"] .loc .province,
html[dir="rtl"] .ev-tag, html[dir="rtl"] .ev-actions a, html[dir="rtl"] .filters a, html[dir="rtl"] .ev-date .mon,
html[dir="rtl"] .subscribe{font-family:var(--rtl-font, 'Noto Nastaliq Urdu'), 'IBM Plex Mono', serif; letter-spacing:0; line-height:2;}
html[dir="rtl"] .stamp{right:auto; left:8vw;}
html[dir="rtl"] .event-list li{padding-left:0; padding-right:13px;}
html[dir="rtl"] .event-list li::before{left:auto; right:0;}
html[dir="rtl"] .contact-close{right:auto; left:16px;}
html[dir="rtl"] .event-list, html[dir="rtl"] .venue-name, html[dir="rtl"] .event-name{direction:ltr; text-align:right;}
html[dir="rtl"] .event-list li a::after{content:"↖";}
html[dir="rtl"] .cm-val{direction:ltr; text-align:right;}

/* ===== Calendar ===== */
.filters{display:flex; gap:8px; flex-wrap:wrap;}
.filters a{
  font-family:'IBM Plex Mono', monospace; font-size:0.84rem; text-decoration:none; color:var(--ink);
  padding:8px 14px; border:1px solid var(--line); background:var(--paper);
}
.filters a[aria-current]{background:var(--ink); color:var(--white); border-color:var(--ink);}
.month{margin-top:52px;}
.month h2{font-size:1.5rem; margin:0 0 4px; padding-bottom:10px; border-bottom:2px solid var(--ink); font-weight:600;}
.ev{
  display:grid; grid-template-columns:92px 1fr; gap:28px;
  padding:26px 0; border-bottom:1px solid var(--line);
}
.ev-date{
  border:1px solid var(--ink); background:var(--white); text-align:center; padding:10px 6px 8px; align-self:start;
}
.ev-date .day{font-size:2.1rem; font-weight:700; line-height:1;}
.ev-date .mon{font-family:'IBM Plex Mono', monospace; font-size:0.74rem; margin-top:6px; color:var(--seal-deep);}
.ev.ours .ev-date{border-color:var(--seal); border-top-width:5px;}
.ev-tag{font-family:'IBM Plex Mono', monospace; font-size:0.72rem; color:var(--ink-soft); margin-bottom:6px;}
.ev.ours .ev-tag{color:var(--seal-deep);}
.ev h3{font-size:1.35rem; margin:0 0 10px; line-height:1.3;}
.ev-meta{display:grid; grid-template-columns:auto 1fr; gap:4px 14px; font-size:0.98rem; margin-bottom:10px;}
.ev-meta dt{font-family:'IBM Plex Mono', monospace; font-size:0.74rem; color:var(--ink-soft); padding-top:3px;}
.ev-meta dd{margin:0;}
.ev-desc{max-width:68ch; line-height:1.6; margin:0 0 14px; color:var(--ink-soft); white-space:pre-line;}
.ev-actions{display:flex; gap:16px; flex-wrap:wrap; align-items:center;}
.ev-actions a{
  font-family:'IBM Plex Mono', monospace; font-size:0.8rem; color:var(--seal-deep); text-decoration:none;
  border-bottom:1px solid var(--seal-deep);
}
.ev-actions a.cal{border:1px solid var(--ink); color:var(--ink); padding:6px 12px;}
.ev-actions a.cal:hover{background:var(--ink); color:var(--white);}
.subscribe{
  margin-top:56px; padding:24px; background:var(--white); border:1px solid var(--line); border-top:5px solid var(--gold);
  display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; justify-content:space-between;
}
.subscribe p{margin:0; color:var(--ink-soft); font-size:0.95rem;}
.subscribe a{
  font-family:'IBM Plex Mono', monospace; font-size:0.84rem; background:var(--ink); color:var(--white);
  text-decoration:none; padding:10px 16px;
}
.subscribe a:hover{background:var(--seal);}
html[dir="rtl"] .ev h3, html[dir="rtl"] .ev-desc{line-height:2.1;}

@media (max-width: 860px){
  .sitebar{padding:10px 6vw;}
  .ev{grid-template-columns:70px 1fr; gap:16px;}
  .ev-date .day{font-size:1.6rem;}
}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

/* RTL fixes: form fields in Urdu, isolated English text, stamp stays LTR */
html[dir="rtl"] .controls input[type="text"], html[dir="rtl"] select{font-family:var(--rtl-font, 'Noto Nastaliq Urdu'), serif; letter-spacing:0; line-height:1.9; padding-top:6px; padding-bottom:6px;}
html[dir="rtl"] [lang="en"]{unicode-bidi:isolate;}
.stamp{direction:ltr;}
html[dir="rtl"] .region-count{font-family:var(--rtl-font, 'Noto Nastaliq Urdu'), serif; letter-spacing:0;}
