@charset "UTF-8";:root{--bg:#07130f;--panel:#0d2119;--line:#274236;--gold:#d9b66c;--cream:#f3eddf;--muted:#a5b4a9;--green:#b5d77c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--cream);font-family:Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}header{height:84px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12;position:sticky;top:0;background:#07130fee;backdrop-filter:blur(18px);z-index:20}.brand{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.14em;font-weight:800}.brand img{width:42px;height:48px;object-fit:contain}.brand small{display:block;font-size:9px;color:var(--gold);letter-spacing:.1em;margin-top:5px}nav{display:flex;gap:34px;font-size:12px;color:var(--muted)}nav a:hover{color:var(--gold)}.header-date{font-size:10px;letter-spacing:.1em;color:var(--gold)}.header-date b{margin-left:15px}.menu{display:none;background:none;border:0;color:var(--cream);font-size:22px}.hero{min-height:calc(100svh - 84px);position:relative;overflow:hidden;display:flex;align-items:center;padding:7vh 8vw}.hero-image{position:absolute;inset:0;background:url('../assets/images/school-entrance.jpg') center 48%/cover no-repeat;transform:scale(1.025);animation:heroDrift 18s ease-in-out infinite alternate}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#06110df2 0%,#07130fd9 36%,#07130f73 68%,#07130f4a),linear-gradient(0deg,#07130f 0%,transparent 40%,#07130f40)}.hero-copy{position:relative;max-width:800px;z-index:1}.overline{font-size:10px;letter-spacing:.2em;color:var(--gold);font-weight:700}.overline span{padding:0 12px;color:var(--green)}.hero-logo{width:clamp(75px,10vw,130px);height:clamp(75px,10vw,130px);object-fit:contain;margin:3vh 0 0;filter:drop-shadow(0 5px 22px #0008)}.mal-title{font-family:Manjari,sans-serif;font-weight:700;font-size:clamp(4.4rem,12vw,10rem);line-height:1.12;letter-spacing:-.05em;margin:0;color:#fff;text-shadow:0 8px 40px #0008}.festival-name{font-size:clamp(20px,3vw,36px);font-weight:800;line-height:1.12;letter-spacing:.04em;margin:0}.festival-name em{font-size:.42em;font-style:normal;letter-spacing:.2em;color:var(--gold)}.theme{font-size:11px;letter-spacing:.22em;color:var(--gold);margin-top:22px}.venue-line{font-size:10px;letter-spacing:.15em;color:#d2ddd3}.explore{display:inline-flex;gap:30px;align-items:center;margin-top:28px;padding:15px 22px;border:1px solid #d9b66c99;border-radius:3px;font-size:10px;letter-spacing:.15em}.explore span{font-size:18px;color:var(--gold)}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.results-link{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;min-height:48px;padding:9px 17px;border:1px solid #b5d77c88;border-radius:3px;color:var(--green);font-size:10px;letter-spacing:.12em;font-weight:800}.results-link b{display:inline;color:var(--gold);font-size:16px;margin-left:5px}.results-label{font-size:8px;letter-spacing:.16em;color:var(--muted);font-weight:600}nav .nav-results{color:var(--gold)}nav .nav-results:hover{color:var(--green)}.hero-foot{position:absolute;bottom:24px;left:5vw;right:5vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.18em;color:#c5d0c5}.about,.stages,.venues{padding:110px 8vw}.about{display:grid;grid-template-columns:.7fr 1.3fr .8fr;gap:5vw;border-bottom:1px solid var(--line);align-items:center}.section-index{font-size:10px;letter-spacing:.16em;color:var(--gold);align-self:start}.about h2,.section-top h2,.venues h2,.closing h2{font-size:clamp(42px,6vw,82px);line-height:.98;letter-spacing:-.055em;margin:18px 0}.about h2 em,.section-top h2 em,.venues h2 em,.closing h2 em{font-family:Georgia,serif;font-weight:400;color:var(--green)}.about-copy{color:var(--muted);line-height:1.8;font-size:14px;max-width:520px}.stats{display:flex;gap:25px;margin-top:35px;font-size:9px;letter-spacing:.12em;color:var(--muted)}.stats b{display:block;font-size:28px;color:var(--cream);margin-bottom:5px}.rice-art{border:1px solid #b5d77c30;aspect-ratio:1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,#b5d77c14,transparent 67%);text-align:center;color:var(--gold)}.rice-art span{font-size:65px;animation:rotate 30s linear infinite}.rice-art p{font-size:10px;letter-spacing:.18em;line-height:1.8}.rice-art small{font-family:Manjari,sans-serif;color:var(--muted)}.section-top{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:55px}.section-top>p{max-width:350px;color:var(--muted);font-size:13px;line-height:1.8}.stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stage-card{border:1px solid var(--line);padding:25px;min-height:185px;background:linear-gradient(145deg,#10251b,#091710);position:relative;overflow:hidden;transition:transform .3s,border-color .3s,background .3s}.stage-card:before{content:"";position:absolute;right:-40px;top:-70px;width:180px;height:180px;border:1px solid #d9b66c24;border-radius:50%;box-shadow:0 0 0 22px #d9b66c08,0 0 0 44px #d9b66c05}.stage-card:hover{transform:translateY(-5px);border-color:#b5d77c85;background:#12291d}.stage-card .num{font-size:10px;letter-spacing:.18em;color:var(--gold)}.stage-card h3{font-family:Manjari,sans-serif;font-size:clamp(26px,3vw,39px);margin:24px 0 9px;line-height:1.2}.stage-card p{font-size:10px;letter-spacing:.05em;color:var(--muted);margin:0}.stage-card .arrow{position:absolute;right:24px;bottom:23px;color:var(--gold);font-size:22px}.venues{background:#091811}.venues h2{margin-bottom:45px}.venue-list{border-top:1px solid var(--line)}.venue-list a{display:grid;grid-template-columns:55px 1fr auto;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);gap:15px}.venue-list a>b{font-size:11px;color:var(--gold)}.venue-list a>span{font-size:16px}.venue-list small{display:block;color:var(--muted);font-size:10px;margin-top:6px}.venue-list i{font-style:normal;font-size:9px;letter-spacing:.12em;color:var(--gold)}.closing{text-align:center;padding:110px 20px;background:radial-gradient(ellipse at 50% 0%,#1d3926,#07130f 70%)}.closing h2{margin:22px}.closing>p:last-child{font-size:12px;color:var(--muted)}footer{padding:25px 5vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.12em;color:var(--muted);border-top:1px solid var(--line)}.stage-detail{padding:6vw;max-width:1400px;margin:auto}.back{color:var(--gold);font-size:11px;letter-spacing:.12em}.stage-heading{display:grid;grid-template-columns:1fr 1.15fr;gap:5vw;align-items:center;margin-top:45px}.stage-heading h1{font-family:Manjari,sans-serif;font-size:clamp(48px,8vw,100px);line-height:1.1;margin:20px 0}.venue-name{color:var(--muted);font-size:14px;line-height:1.7}.stage-photo{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line)}.map-button{display:inline-block;border:1px solid var(--gold);padding:15px 20px;margin-top:24px;color:var(--gold);font-size:10px;letter-spacing:.15em}.programme{margin-top:100px;padding:40px;border:1px solid var(--line);background:#0c1c14}.programme h2{font-size:clamp(30px,4vw,50px)}.day-tabs{display:flex;gap:10px;margin:30px 0}.day-tabs button{background:#10251b;border:1px solid var(--line);color:var(--cream);padding:13px 18px;font:inherit;font-size:11px;cursor:pointer}.day-tabs button.active{background:var(--gold);color:#10170e}.programme-message{padding:25px;border-left:2px solid var(--gold);color:var(--muted);line-height:1.8}.stage-pagination{display:flex;justify-content:space-between;margin:60px 0;color:var(--gold);font-size:11px}.stage-page header .brand img{width:34px;height:38px}@keyframes heroDrift{to{transform:scale(1.08) translateY(-1%)}}@keyframes rotate{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:900px){.about{grid-template-columns:1fr 1.5fr}.rice-art{display:none}.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-top{align-items:start;flex-direction:column}.stage-heading{grid-template-columns:1fr}.stage-photo{order:-1}}@media(max-width:600px){header{height:68px;padding:0 5vw}.brand{font-size:10px}.brand img{width:30px;height:36px}.brand small{font-size:7px}.header-date{font-size:8px}.header-date b{margin-left:5px}nav{display:none;position:absolute;top:68px;left:0;right:0;background:#07130f;padding:20px 6vw;flex-direction:column;gap:18px;border-bottom:1px solid var(--line)}nav.open{display:flex}.menu{display:block}.hero{min-height:calc(100svh - 68px);padding:5vh 6vw}.hero-shade{background:linear-gradient(90deg,#06110df0,#07130f99),linear-gradient(0deg,#07130f,transparent 55%)}.hero-copy{width:100%}.mal-title{font-size:clamp(4rem,18vw,7rem)}.festival-name{font-size:23px}.theme{font-size:9px;letter-spacing:.12em}.venue-line{font-size:8px;line-height:1.7}.hero-foot{font-size:7px;letter-spacing:.1em}.hero-foot span:last-child{display:none}.about,.stages,.venues{padding:75px 6vw}.about{grid-template-columns:1fr;gap:25px}.about h2,.section-top h2,.venues h2,.closing h2{font-size:clamp(44px,13vw,68px)}.stats{gap:16px}.stats b{font-size:23px}.stage-grid{grid-template-columns:1fr;gap:10px}.stage-card{min-height:155px;padding:20px}.stage-card h3{font-size:31px;margin-top:18px}.venue-list a{grid-template-columns:32px 1fr;gap:10px}.venue-list i{grid-column:2;margin-top:8px}.venue-list a>span{font-size:14px}.closing{padding:80px 15px}footer{gap:15px;flex-direction:column}.stage-detail{padding:8vw 6vw}.stage-heading h1{font-size:clamp(48px,15vw,80px)}.programme{padding:23px}.day-tabs{gap:5px}.day-tabs button{padding:11px 10px;font-size:10px}.stage-pagination{gap:20px}.stage-pagination a{max-width:45%}}/* V3.1 mobile layout refinements */
@media(max-width:600px){
  header{gap:10px}.brand{min-width:0;gap:8px;letter-spacing:.08em}.brand span{line-height:1.25}.header-date{white-space:nowrap}
  .hero{min-height:auto;min-height:calc(100svh - 68px);padding:42px 6vw 76px;align-items:center}.hero-image{background-position:58% center}.hero-shade{background:linear-gradient(180deg,#06110dcf 0%,#07130f99 38%,#07130fdf 100%),linear-gradient(90deg,#06110d90,transparent)}.hero-copy{max-width:100%;padding:0}
  .overline{font-size:9px;letter-spacing:.14em;line-height:1.6}.hero-logo{width:66px;height:66px;margin:16px 0 8px}.mal-title{font-size:clamp(3.1rem,15.8vw,5rem);line-height:1.18;letter-spacing:-.035em;overflow-wrap:normal;white-space:nowrap}
  .festival-name{font-size:clamp(19px,6vw,24px);line-height:1.18;letter-spacing:.02em;margin-top:10px}.festival-name em{display:inline-block;font-size:.44em;line-height:1.5;letter-spacing:.12em;margin-top:5px}.theme{margin-top:16px;font-size:8px;letter-spacing:.12em;line-height:1.6}.venue-line{font-size:8px;letter-spacing:.08em;line-height:1.65;margin-top:7px}.explore{margin-top:22px;padding:13px 16px;gap:20px;font-size:9px}.hero-actions{gap:9px}.results-link{min-height:46px;padding:8px 12px;font-size:9px}.results-label{font-size:7px}.hero-foot{bottom:14px;left:6vw;right:6vw;letter-spacing:.08em}
  .about,.stages,.venues{padding:62px 6vw}.about{gap:20px}.about h2,.section-top h2,.venues h2,.closing h2{font-size:clamp(40px,12vw,58px);line-height:1.02}.about-copy{font-size:13px;line-height:1.75}.stats{flex-wrap:wrap;gap:18px 22px}.stats b{font-size:24px}.section-top{margin-bottom:28px;gap:14px}.section-top>p{font-size:12px;margin:0}
  .stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stage-card{padding:15px 13px;min-height:158px;border-radius:3px}.stage-card .num{font-size:8px;letter-spacing:.08em;line-height:1.55;display:block;min-height:24px}.stage-card h3{font-size:clamp(22px,7.1vw,30px);line-height:1.25;margin:16px 0 8px;overflow-wrap:anywhere}.stage-card p{font-size:9px;line-height:1.5;max-width:90%;overflow-wrap:anywhere}.stage-card .arrow{right:12px;bottom:12px;font-size:17px}
  .venue-list a{padding:17px 0;grid-template-columns:25px minmax(0,1fr);gap:9px}.venue-list a>span{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.venue-list small{font-size:9px;line-height:1.5}.venue-list i{font-size:8px;letter-spacing:.08em}.closing{padding:66px 6vw}footer{padding:22px 6vw;font-size:8px;line-height:1.6;overflow-wrap:anywhere}
  .stage-detail{padding:26px 6vw}.stage-heading{gap:20px;margin-top:25px}.stage-heading h1{font-size:clamp(42px,13vw,68px);line-height:1.2;overflow-wrap:anywhere;margin:12px 0}.stage-photo{aspect-ratio:4/3;max-height:42svh;object-fit:cover;border-radius:3px}.venue-name{font-size:12px;line-height:1.7;overflow-wrap:anywhere}.map-button{padding:13px 15px;font-size:9px;margin-top:18px}
  .programme{margin-top:55px;padding:20px 16px}.programme h2{font-size:clamp(28px,9vw,42px);line-height:1.05}.day-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.day-tabs button{min-width:0;padding:11px 5px;font-size:8px;letter-spacing:.02em;line-height:1.4}.programme-message{padding:17px 13px;font-size:12px;line-height:1.7}.stage-pagination{margin:38px 0;align-items:center;font-size:9px;line-height:1.6}.stage-pagination a{max-width:46%;overflow-wrap:anywhere}
}
@media(max-width:360px){.header-date{font-size:7px}.brand{font-size:9px}.brand img{width:27px;height:32px}.hero{padding-left:5vw;padding-right:5vw}.mal-title{font-size:clamp(2.85rem,15vw,3.4rem)}.stage-grid{gap:7px}.stage-card{padding:13px 11px;min-height:150px}.stage-card h3{font-size:22px}.stage-card p{font-size:8px}.day-tabs button{font-size:7px}}


/* FINAL PRODUCTION REFINEMENT — mobile-first safety and accessibility */
:root { color-scheme: dark; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { min-width: 320px; overflow-x: clip; }
img { max-width: 100%; }
a, button { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
header { padding-top: env(safe-area-inset-top); }
.hero { min-height: max(620px, calc(100vh - 84px)); min-height: max(620px, calc(100svh - 84px)); }
.hero-image { background-image: url('../assets/images/school-entrance.webp'); background-position: center 48%; }
.stage-card { min-width: 0; }
.stage-card h3 { overflow-wrap: anywhere; word-break: normal; }
.venue-list a, .venue-list a > span { min-width: 0; }
.stage-heading > div { min-width: 0; }
.stage-heading h1 { overflow-wrap: anywhere; }
.stage-photo { display: block; }
.day-tabs button { min-height: 44px; }
.menu { min-width: 44px; min-height: 44px; cursor: pointer; }
nav a, .header-date, .map-button, .back, .stage-pagination a { min-height: 44px; display: inline-flex; align-items: center; }
nav a { padding: 8px 0; }
@supports not (overflow: clip) { body { overflow-x: hidden; } }
@media (max-width: 600px) {
  header { padding-left: max(5vw, env(safe-area-inset-left)); padding-right: max(5vw, env(safe-area-inset-right)); }
  .hero { min-height: max(650px, calc(100vh - 68px)); min-height: max(650px, calc(100svh - 68px)); padding-top: 34px; padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
  .hero-image { background-position: 55% center; }
  .hero-shade { background: linear-gradient(180deg, #06110dcf 0%, #07130f9c 42%, #07130ff0 100%), linear-gradient(90deg,#06110d80,transparent); }
  .mal-title { white-space: normal; overflow-wrap: normal; }
  .stage-card { min-height: 164px; }
  .stage-card h3 { font-size: clamp(20px, 6.5vw, 29px); line-height: 1.35; }
  .venue-list a { grid-template-columns: 28px minmax(0,1fr); }
  .stage-photo { max-height: 44svh; }
  .stage-pagination a { min-height: 44px; }
}
@media (max-width: 360px) {
  .brand { max-width: 58%; }
  .header-date { font-size: 7px; letter-spacing: .04em; }
  .hero .overline { font-size: 8px; }
  .stats { gap: 14px; }
  .stage-card { padding: 12px 10px; }
}
@media (min-width: 601px) and (max-width: 900px) {
  .hero { padding-left: 6vw; padding-right: 6vw; }
  .stage-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
footer{flex-wrap:wrap;gap:12px}.image-credit{flex-basis:100%;font-size:8px;letter-spacing:0;text-transform:none}.image-credit a{color:inherit;text-underline-offset:2px}
