:root { color-scheme: light; --paper:#f3efe5; --surface:#fbf9f3; --ink:#24211d; --soft:#686159; --line:#d8d0c1; --red:#8f2f2c; --serif:Iowan Old Style,Baskerville,Georgia,serif; --sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans Tibetan',sans-serif; }
:root[data-theme='dark'] { color-scheme:dark; --paper:#191816; --surface:#24221f; --ink:#f2ede3; --soft:#bdb5aa; --line:#48433c; --red:#d77a72; }
* { box-sizing:border-box; }
body { min-height:100vh; margin:0; padding:12px; display:grid; place-items:center; background:var(--paper); color:var(--ink); font-family:var(--sans); }
.widget { width:min(420px,100%); background:var(--surface); border:1px solid var(--line); box-shadow:0 18px 50px rgba(30,24,18,.12); }
header, footer { min-height:52px; display:flex; align-items:center; gap:10px; padding:8px 14px; }
header { border-bottom:1px solid var(--line); }
header a { color:inherit; text-decoration:none; font:600 1rem var(--serif); }
.mark { width:32px; height:32px; display:grid; place-items:center; border:1px solid var(--red); color:var(--red); }
button { margin-left:auto; width:36px; height:36px; border:1px solid var(--line); background:transparent; color:inherit; cursor:pointer; }
section { padding:18px; }
#widgetToday { border-bottom:1px solid var(--line); }
.date { margin:0; color:var(--soft); font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
h1 { margin:5px 0; color:var(--red); font:560 1.55rem/1.2 var(--serif); }
.festival { margin:12px 0 0; font-weight:700; }
#widgetNext h2 { margin:4px 0; font:560 1.08rem var(--serif); }
#widgetNext p { margin:0; color:var(--soft); font-size:.8rem; }
footer { justify-content:space-between; border-top:1px solid var(--line); color:var(--soft); font-size:.72rem; }
footer a { color:var(--red); font-weight:700; text-decoration:none; }
@media (max-width:340px) { footer { align-items:flex-start; flex-direction:column; } }
