/* Rangooo festival calendar */
.fe{--ink:#16202C;--muted:#5A6573;--line:#E7E7E1;--acc:#145C63;max-width:900px;margin:0 auto;padding:8px 20px 48px;color:var(--ink);font-family:Inter,system-ui,sans-serif}
.fe h1,.fe h2,.fe h3{font-family:Fraunces,Georgia,serif;font-weight:500;letter-spacing:-.01em;margin:0}
.fe .crumb{font-size:13px;color:var(--muted);margin:8px 0 6px}.fe .crumb a{color:inherit;text-decoration:none}
.fe-hero{padding:28px;border-radius:30px;background:radial-gradient(60% 80% at 0% 0%,#FFD9A8,transparent 60%),radial-gradient(60% 80% at 100% 100%,#F8C8DC,transparent 60%),#FFF8EE}
.fe-kick{display:inline-block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#B5541B;margin-bottom:10px}
.fe-hero h1{font-size:clamp(32px,5vw,54px);line-height:1.05}
.fe-hero p{color:#3A4654;line-height:1.55;max-width:56ch;margin:12px 0 0}
.fe-next{margin-top:20px;padding:16px 18px;border-radius:22px;background:#16202C;color:#fff;display:grid;grid-template-columns:1fr auto;gap:2px 16px;align-items:center}
.fe-next-l{grid-column:1;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#FFD58A;font-weight:700}
.fe-next b{grid-column:1;font-family:Fraunces,Georgia,serif;font-weight:500;font-size:26px}
#fewhen{grid-column:1;font-size:14px;color:#C9D3E0}
.fe-count{grid-column:2;grid-row:1/4;text-align:center;font-family:Fraunces,Georgia,serif;font-size:44px;line-height:1}
.fe-count small{display:block;font-family:Inter,system-ui,sans-serif;font-size:12px;color:#C9D3E0;margin-top:4px}
.fe-months{position:sticky;top:calc(env(safe-area-inset-top,0px) + 64px);z-index:4;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:20px -4px 0;padding:8px 4px;background:linear-gradient(var(--rg-bg,#F6F6F2) 75%,transparent)}
.fe-months::-webkit-scrollbar{display:none}
.fe-months a{flex:none;display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none}
.fe-month{margin-top:28px;scroll-margin-top:130px}
.fe-month h2{font-size:26px;margin-bottom:12px}
.fe-list{display:flex;flex-direction:column;gap:12px}
.fe-card{display:grid;grid-template-columns:72px 1fr;gap:16px;padding:16px;border-radius:22px;background:#fff;border:1px solid var(--line);box-shadow:0 2px 6px rgba(22,32,44,.04)}
.fe-card.past{opacity:.55}
.fe-card.next{border-color:#F4A340;box-shadow:0 0 0 2px #F4A340,0 12px 28px rgba(244,163,64,.2)}
.fe-date{display:flex;flex-direction:column;align-items:center;justify-content:center;height:80px;border-radius:18px;background:#FFF4E6;color:#7A3E0A}
.fe-date b{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:30px;line-height:1}
.fe-date span{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.fe-date i{font-style:normal;font-size:11px;color:#A0682E}
.fe-card h3{font-size:22px;line-height:1.2}
.fe-when{font-size:13px;color:var(--muted);margin:4px 0 8px}
.fe-body p{line-height:1.55;margin:0}
.fe-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fe-acts a,.fe-acts button{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;font:600 13.5px Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer}
.fe-acts a{background:#E7F3F4;color:var(--acc);border:0}
.fe-acts button{background:#fff;color:var(--ink);border:1.5px solid var(--line)}
.fe-acts a:focus-visible,.fe-acts button:focus-visible,.fe-months a:focus-visible{outline:3px solid #E8590C;outline-offset:2px}
.fe-note{margin-top:36px;padding:20px;border-radius:22px;background:#fff;border:1px dashed #E3C9A6}
.fe-note h2{font-size:20px}.fe-note p{color:var(--muted);line-height:1.6;margin:8px 0 0}.fe-note a{color:var(--acc)}
@media (max-width:700px){
  .fe{padding:4px 14px 32px}
  .fe-hero{padding:22px 18px;border-radius:24px}
  .fe-next b{font-size:22px}.fe-count{font-size:36px}
  .fe-months{position:static;background:none;margin-top:16px}
  .fe-card{grid-template-columns:56px 1fr;gap:12px;padding:14px}
  .fe-date{height:64px;border-radius:14px}.fe-date b{font-size:24px}
  .fe-card h3{font-size:19px;overflow-wrap:anywhere}
  .fe-card>*,.fe-next>*{min-width:0}
  .fe-when{font-size:14px}.fe-date i{font-size:12px}
  .fe-acts a,.fe-acts button{font-size:15px}
  .fe .crumb{font-size:14px}
}

/* dark mode for every page that loads festivals.css (hub, guides, festival pages, calendar): page tokens, static header, footer, tab bar, phone dock, logo. Same two switches as night/boot.js and night.css; colours are the night.css tokens. */
@media (prefers-color-scheme:dark){
  html:has(main.fe){color-scheme:dark;--rg-bg:#0F1720;--rg-surface:#18222D;--rg-ink:#E9EEF2;--rg-muted:#9BA8B5;--rg-line:#263341;--rg-soft:#16323A;--rg-accent:#4FB3C4;--rg-accent-2:#3A98A9}
  html:has(main.fe) .fe{--ink:#E9EEF2;--muted:#9BA8B5;--line:#263341;--acc:#4FB3C4;--surface:#18222D;--accent-soft:#16323A;--paper:#131C26;--accent:#4FB3C4;color:var(--ink)}
  html:has(main.fe) .fe-hero{background:radial-gradient(60% 80% at 0% 0%,rgba(240,168,98,.2),transparent 60%),radial-gradient(60% 80% at 100% 100%,rgba(229,72,123,.14),transparent 60%),#18222D}
  html:has(main.fe) .fe-kick{color:#F0A862}
  html:has(main.fe) .fe-hero p{color:#C3CED9}
  html:has(main.fe) .fe-next{border:1px solid #263341}
  html:has(main.fe) .fe-months{background:linear-gradient(#0F1720 75%,transparent)}
  html:has(main.fe) .fe-months a{background:#18222D;color:var(--ink)}
  html:has(main.fe) .fe-card{background:#18222D;box-shadow:none}
  html:has(main.fe) .fe-card.next{box-shadow:0 0 0 2px #F4A340,0 12px 28px rgba(244,163,64,.12)}
  html:has(main.fe) .fe-date{background:#2A2118;color:#F0A862}
  html:has(main.fe) .fe-date i{color:#D9A878}
  html:has(main.fe) .fe-acts a{background:#16323A;color:var(--acc)}
  html:has(main.fe) .fe-acts button{background:#18222D;border-color:#34445A;color:var(--ink)}
  html:has(main.fe) .fe-note{background:#18222D;border-color:rgba(240,168,98,.4)}
  html:has(main.fe) .sh{background:rgba(15,23,32,.94);border-bottom-color:rgba(255,255,255,.12)}
  html:has(main.fe) .sh-lang summary{background:#18222D}
  html:has(main.fe) .sh-lang[open] summary{border-color:#34445A}
  html:has(main.fe) .sh-menu{background:#18222D;box-shadow:0 18px 44px rgba(0,0,0,.5)}
  html:has(main.fe) .sh-nav a:hover,html:has(main.fe) .sh-menu a:hover{background:#18222D}
  html:has(main.fe) .sh-menu::before{background:#34445A}
  html:has(main.fe) .sh-cta,html:has(main.fe) .sf-cta{color:#0B1218!important}
  html:has(main.fe) .sh-tab{background:rgba(15,23,32,.94)}
  html:has(main.fe) footer.sf{background:#0F1720}
  html:has(main.fe) img[src$="/logo.svg"]{content:url(/logo-light.svg)}
  html:has(main.fe) .dk{--dk-bg:rgba(22,27,33,.62);--dk-ink:rgba(255,255,255,.8);--dk-on-bg:rgba(255,255,255,.17);--dk-on-ink:#fff;border-color:rgba(255,255,255,.14);box-shadow:0 12px 36px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12)}
  html:has(main.fe).ud-on .dk-sheet{--ink:#E9EEF2;--surface:#18222D;--line:rgba(255,255,255,.12);--accent:#4FB3C4;--muted:#9BA8B5;background:rgba(22,30,38,.94);border-color:rgba(255,255,255,.1);color:#E9EEF2}
  html:has(main.fe).ud-on .dk-grip{background:rgba(255,255,255,.25)}
  html:has(main.fe).ud-on .dk-sheet .dk-t,html:has(main.fe).ud-on .dk-sheet .dk-l{color:#E9EEF2!important;background:#18222D!important}
  html:has(main.fe).ud-on .dk-sheet .dk-l.on{background:#4FB3C4!important;color:#0B1218!important}
  html:has(main.fe).ud-on .dk-sheet .dk-all,html:has(main.fe).ud-on .dk-sheet .dk-all summary{color:#9BA8B5!important}
  html:has(main.fe).ud-on .dk-sheet .dk-links a{color:#E9EEF2!important}
}
@media (prefers-color-scheme:dark) and (max-width:700px){
  html:has(main.fe) header.sh{background:#0F1720!important}
  html:has(main.fe) header.sh .sh-in .sh-draw,html:has(main.fe) header.sh .sh-in .sh-share,html:has(main.fe) header.sh .sh-in .sh-lang>summary{color:#E9EEF2!important}
  html:has(main.fe) header.sh .sh-in .sh-draw:active,html:has(main.fe) header.sh .sh-in .sh-share:active,html:has(main.fe) header.sh .sh-in .sh-lang>summary:active{background:rgba(255,255,255,.1)!important}
}
html[data-night="1"]:has(main.fe){color-scheme:dark;--rg-bg:#0F1720;--rg-surface:#18222D;--rg-ink:#E9EEF2;--rg-muted:#9BA8B5;--rg-line:#263341;--rg-soft:#16323A;--rg-accent:#4FB3C4;--rg-accent-2:#3A98A9}
html[data-night="1"]:has(main.fe) .fe{--ink:#E9EEF2;--muted:#9BA8B5;--line:#263341;--acc:#4FB3C4;--surface:#18222D;--accent-soft:#16323A;--paper:#131C26;--accent:#4FB3C4;color:var(--ink)}
html[data-night="1"]:has(main.fe) .fe-hero{background:radial-gradient(60% 80% at 0% 0%,rgba(240,168,98,.2),transparent 60%),radial-gradient(60% 80% at 100% 100%,rgba(229,72,123,.14),transparent 60%),#18222D}
html[data-night="1"]:has(main.fe) .fe-kick{color:#F0A862}
html[data-night="1"]:has(main.fe) .fe-hero p{color:#C3CED9}
html[data-night="1"]:has(main.fe) .fe-next{border:1px solid #263341}
html[data-night="1"]:has(main.fe) .fe-months{background:linear-gradient(#0F1720 75%,transparent)}
html[data-night="1"]:has(main.fe) .fe-months a{background:#18222D;color:var(--ink)}
html[data-night="1"]:has(main.fe) .fe-card{background:#18222D;box-shadow:none}
html[data-night="1"]:has(main.fe) .fe-card.next{box-shadow:0 0 0 2px #F4A340,0 12px 28px rgba(244,163,64,.12)}
html[data-night="1"]:has(main.fe) .fe-date{background:#2A2118;color:#F0A862}
html[data-night="1"]:has(main.fe) .fe-date i{color:#D9A878}
html[data-night="1"]:has(main.fe) .fe-acts a{background:#16323A;color:var(--acc)}
html[data-night="1"]:has(main.fe) .fe-acts button{background:#18222D;border-color:#34445A;color:var(--ink)}
html[data-night="1"]:has(main.fe) .fe-note{background:#18222D;border-color:rgba(240,168,98,.4)}
html[data-night="1"]:has(main.fe) .sh{background:rgba(15,23,32,.94);border-bottom-color:rgba(255,255,255,.12)}
html[data-night="1"]:has(main.fe) .sh-lang summary{background:#18222D}
html[data-night="1"]:has(main.fe) .sh-lang[open] summary{border-color:#34445A}
html[data-night="1"]:has(main.fe) .sh-menu{background:#18222D;box-shadow:0 18px 44px rgba(0,0,0,.5)}
html[data-night="1"]:has(main.fe) .sh-nav a:hover,html[data-night="1"]:has(main.fe) .sh-menu a:hover{background:#18222D}
html[data-night="1"]:has(main.fe) .sh-menu::before{background:#34445A}
html[data-night="1"]:has(main.fe) .sh-cta,html[data-night="1"]:has(main.fe) .sf-cta{color:#0B1218!important}
html[data-night="1"]:has(main.fe) .sh-tab{background:rgba(15,23,32,.94)}
html[data-night="1"]:has(main.fe) footer.sf{background:#0F1720}
html[data-night="1"]:has(main.fe) img[src$="/logo.svg"]{content:url(/logo-light.svg)}
html[data-night="1"]:has(main.fe) .dk{--dk-bg:rgba(22,27,33,.62);--dk-ink:rgba(255,255,255,.8);--dk-on-bg:rgba(255,255,255,.17);--dk-on-ink:#fff;border-color:rgba(255,255,255,.14);box-shadow:0 12px 36px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.12)}
html[data-night="1"]:has(main.fe).ud-on .dk-sheet{--ink:#E9EEF2;--surface:#18222D;--line:rgba(255,255,255,.12);--accent:#4FB3C4;--muted:#9BA8B5;background:rgba(22,30,38,.94);border-color:rgba(255,255,255,.1);color:#E9EEF2}
html[data-night="1"]:has(main.fe).ud-on .dk-grip{background:rgba(255,255,255,.25)}
html[data-night="1"]:has(main.fe).ud-on .dk-sheet .dk-t,html[data-night="1"]:has(main.fe).ud-on .dk-sheet .dk-l{color:#E9EEF2!important;background:#18222D!important}
html[data-night="1"]:has(main.fe).ud-on .dk-sheet .dk-l.on{background:#4FB3C4!important;color:#0B1218!important}
html[data-night="1"]:has(main.fe).ud-on .dk-sheet .dk-all,html[data-night="1"]:has(main.fe).ud-on .dk-sheet .dk-all summary{color:#9BA8B5!important}
html[data-night="1"]:has(main.fe).ud-on .dk-sheet .dk-links a{color:#E9EEF2!important}
@media (max-width:700px){
html[data-night="1"]:has(main.fe) header.sh{background:#0F1720!important}
html[data-night="1"]:has(main.fe) header.sh .sh-in .sh-draw,html[data-night="1"]:has(main.fe) header.sh .sh-in .sh-share,html[data-night="1"]:has(main.fe) header.sh .sh-in .sh-lang>summary{color:#E9EEF2!important}
html[data-night="1"]:has(main.fe) header.sh .sh-in .sh-draw:active,html[data-night="1"]:has(main.fe) header.sh .sh-in .sh-share:active,html[data-night="1"]:has(main.fe) header.sh .sh-in .sh-lang>summary:active{background:rgba(255,255,255,.1)!important}
}
