:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #283137; background: #f7f6f2; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; line-height: 1.5; }
a { color: inherit; }
a:focus-visible { outline: 3px solid #c36d37; outline-offset: 4px; border-radius: 5px; }
.skip-link { position: absolute; left: 1rem; top: -4rem; padding: .6rem 1rem; background: white; z-index: 3; }
.skip-link:focus { top: 1rem; }
.shell { width: min(1120px, calc(100% - 2rem)); margin: 0 auto; }
.hero { background: #193a40; color: #fff; padding: 2.3rem 0 2.2rem; }
.eyebrow { margin: 0 0 .45rem; color: #bfe5d9; font-size: .76rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(2rem, 6vw, 3.5rem); line-height: 1.08; letter-spacing: -.045em; }
.intro { max-width: 44rem; margin: .85rem 0 0; color: #dcebe8; font-size: .98rem; }
.nav-wrap { margin-top: 1.9rem; }
.nav-title { margin: 0 0 .7rem; color: #bfe5d9; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.weekend-nav { display: flex; flex-wrap: wrap; gap: .65rem; padding: .2rem .2rem .45rem 0; }
.weekend-nav a { display: inline-flex; align-items: center; min-width: max-content; padding: .65rem .9rem; border: 1px solid #789b97; border-radius: 999px; text-decoration: none; font-size: .88rem; font-weight: 650; color: #fff; background: #285058; }
.weekend-nav a:hover { background: #35646b; }
main { padding: 2rem 0 4rem; }
.weekend { background: #fff; border: 1px solid #e0e5e2; border-radius: 18px; box-shadow: 0 8px 26px rgba(24, 45, 47, .045); margin-bottom: 1.35rem; overflow: hidden; scroll-margin-top: 1rem; }
.weekend-head { padding: 1.3rem 1.4rem 1.1rem; border-bottom: 1px solid #e8ece8; }
.weekend-head h2 { font-size: clamp(1.4rem, 4vw, 1.9rem); line-height: 1.2; letter-spacing: -.03em; margin: 0; }
.weekend-head .kicker { font-size: .75rem; font-weight: 800; color: #52776e; letter-spacing: .11em; text-transform: uppercase; margin: 0 0 .35rem; }
.weekend-note { margin: 1rem 0 0; padding: .7rem .85rem; background: #f0f2f2; border-left: 3px solid #aeb8b8; border-radius: 0 7px 7px 0; color: #465456; font-size: .93rem; }
.days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.day { padding: 1.35rem 1.4rem 1.45rem; min-width: 0; }
.day + .day { border-left: 1px solid #e8ece8; }
.day h3 { margin: 0 0 1.2rem; font-size: 1rem; color: #335451; letter-spacing: .01em; }
.category + .category { margin-top: 1.35rem; }
.category h4 { font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; color: #667674; margin: 0 0 .55rem; }
.entry { border: 1px solid #e5eae5; background: #fcfdfb; border-radius: 10px; padding: .75rem .85rem; overflow-wrap: anywhere; }
.entry + .entry { margin-top: .55rem; }
.entry.pending, .entry.option, .entry.undecided, .entry.needs-attention { background: #fff3dc; border-color: #e4b96c; border-left: 4px solid #d19a3e; }
.entry.undecided { color: #68532e; }
.entry-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: .45rem; }
.marker { display: inline-block; color: #2d6b51; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.pending .marker { color: #94692b; }
.needs-attention .marker { color: #94692b; }
.option .marker { color: #667674; }
.entry-title { font-weight: 700; }
.undecided .entry-title { font-weight: 500; }
.source { display: inline-block; color: #71807c; font-size: .79rem; font-weight: 500; }
.entry-link { display: inline-block; margin-top: .45rem; color: #165e69; font-size: .86rem; font-weight: 700; text-underline-offset: .18em; }
.details { padding: 0; margin: .55rem 0 0; list-style: none; color: #586661; font-size: .88rem; }
.details li + li { margin-top: .22rem; }
.empty { border: 1px dashed #b9c9c3; border-radius: 14px; padding: 1.3rem; background: #fff; color: #4e625c; }
.foot { color: #667674; font-size: .78rem; padding: 0 0 2rem; }
@media (max-width: 700px) { .hero { padding-top: 1.9rem; } .weekend-nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-color: #82a9a1 transparent; } .days { grid-template-columns: 1fr; } .day + .day { border-left: 0; border-top: 1px solid #e8ece8; } .weekend-head, .day { padding-left: 1rem; padding-right: 1rem; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
