:root{--ink:#25211d;--paper:#fbf8f1;--card:#fffdf8;--muted:#746b61;--line:#ded6c9;--gold:#d5a62e;--red:#a84032;--deep:#2f3d38;--max:760px;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;line-height:1.65}a{color:inherit}header{border-bottom:1px solid var(--line);z-index:10;background:#fbf8f1f5;position:sticky;top:0}.bar{justify-content:space-between;align-items:center;gap:1rem;max-width:1100px;margin:auto;padding:.8rem 1rem;display:flex}.brand{letter-spacing:.03em;font-weight:800;text-decoration:none}.nav{flex-wrap:wrap;gap:1rem;font-size:.9rem;display:flex}.nav a{text-decoration:none}.wrap{max-width:var(--max);margin:auto;padding:2.2rem 1.2rem 4rem}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--red);font-size:.78rem;font-weight:800}h1{margin:.35rem 0 1rem;font-size:clamp(2.2rem,8vw,4.2rem);line-height:1.02}h2{margin-top:2.5rem;line-height:1.2}.date{color:var(--muted);font-weight:600}.festival-card,.heart,.praybox{border:1px solid var(--line);background:var(--card);border-radius:16px;margin:2rem 0;padding:1.25rem}.festival-card{border-left:5px solid var(--gold)}.heart summary{cursor:pointer;font-weight:800;list-style:none}.heart summary:before{content:"♡";color:var(--red);margin-right:.6rem;font-size:1.2rem}.heart[open] summary:before{content:"♥"}.button{background:var(--deep);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:.8rem 1.15rem;font-weight:750;text-decoration:none;display:inline-flex}.button[disabled]{opacity:.55;cursor:default}.daynav{grid-template-columns:1fr 1fr 1fr;gap:.65rem;margin-top:3rem;display:grid}.daynav a{text-align:center;border:1px solid var(--line);border-radius:10px;padding:.7rem;text-decoration:none}.all{text-align:center;margin-top:.8rem}.footer{border-top:1px solid var(--line);text-align:center;color:var(--muted);padding:2rem 1rem;font-size:.9rem}.grid{gap:1rem;display:grid}.day-card{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:1rem;text-decoration:none}.day-card strong{display:block}.prose p{margin:1rem 0}.prose ul{margin:1rem 0;padding-left:1.5rem;list-style-type:disc}.prose li{margin:.45rem 0;padding-left:.2rem}@media (width<=650px){.bar{flex-direction:column;align-items:flex-start}.nav{gap:.75rem;font-size:.82rem}.wrap{padding-top:1.5rem}.daynav{grid-template-columns:1fr 1fr}.daynav .today{grid-area:1/1/auto/-1}}.schedule-wrap{max-width:980px}.schedule-lead{max-width:760px}.schedule-controls{border:1px solid var(--line);background:var(--card);border-radius:16px;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:2rem 0 1rem;padding:1rem;display:grid}.schedule-controls [hidden]{display:none!important}.schedule-controls.single-area{grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-controls label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);gap:.35rem;font-size:.78rem;font-weight:800;display:grid}.schedule-controls select{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);font:inherit;text-transform:none;letter-spacing:0;border-radius:10px;padding:.75rem .8rem}.schedule-summary{color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0 1.1rem;display:flex}.schedule-summary strong{color:var(--ink);font-size:1.05rem}.schedule-day{border-top:1px solid var(--line);grid-template-columns:150px 1fr;gap:1.25rem;padding:1.6rem 0;display:grid}.schedule-date{flex-direction:column;font-weight:800;line-height:1.25;display:flex}.schedule-date small{color:var(--muted);margin-top:.3rem;font-weight:500}.event-list{gap:.8rem;display:grid}.schedule-event{border:1px solid var(--line);border-left:5px solid var(--gold);background:var(--card);border-radius:12px;grid-template-columns:105px 1fr;gap:1rem;padding:1rem;display:grid}.schedule-event.type-firewalking{border-left-color:var(--red)}.schedule-event.type-procession,.schedule-event.type-village-procession{border-left-color:var(--deep)}.event-time{font-variant-numeric:tabular-nums;font-weight:800}.event-type{color:var(--red);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800}.event-body h3{margin:.1rem 0 .3rem;font-size:1.08rem;line-height:1.25}.event-shrine{color:var(--muted);margin-bottom:.35rem;font-weight:700}.route{margin-top:.45rem}.event-body p{color:var(--muted);margin:.45rem 0 0}.schedule-source,.schedule-note,.empty-schedule{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-top:1.5rem;padding:1rem;font-size:.9rem}.schedule-source a{font-weight:700}.schedule-source span{color:var(--muted);margin-top:.3rem;display:block}.schedule-note{border-left:5px solid var(--gold)}@media (width<=720px){.schedule-controls,.schedule-controls.single-area{grid-template-columns:1fr}.schedule-day{grid-template-columns:1fr;gap:.7rem}.schedule-date{flex-direction:row;justify-content:space-between;gap:1rem}.schedule-event{grid-template-columns:1fr;gap:.25rem}.schedule-summary{flex-direction:column;align-items:flex-start;gap:.2rem}}.language-switch{border:1px solid;border-radius:999px;padding:.28rem .55rem;font-weight:800;line-height:1}html[lang=th] body{font-family:Noto Sans Thai,Leelawadee UI,Tahoma,sans-serif}
