:root {
  --ink: #292827;
  --muted: #69635f;
  --paper: #f8f5f1;
  --white: #fff;
  --rust: #9b5943;
  --rust-dark: #703b2d;
  --blush: #eadbd4;
  --line: #ded7d1;
  --night: #252322;
  --gold: #c69a55;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "DM Sans", Arial, sans-serif; font-size: 16px; line-height: 1.55; }
a { color: inherit; }

.site-header { position: sticky; top: 0; z-index: 20; background: rgba(248, 245, 241, .94); border-bottom: 1px solid rgba(155, 89, 67, .18); backdrop-filter: blur(12px); }
.header-inner { max-width: 1180px; margin: 0 auto; min-height: 78px; padding: 0 28px; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; margin-right: auto; }
.brand-mark { display: flex; align-items: baseline; letter-spacing: -9px; font: 700 32px/1 "Playfair Display", Georgia, serif; width: 52px; }
.brand-mark span:first-child { color: #9f9c99; }.brand-mark span:last-child { color: var(--rust); }
.brand-name { text-transform: uppercase; letter-spacing: .13em; font-size: 9px; font-weight: 700; line-height: 1.35; }
nav { display: flex; gap: 26px; }
nav a { color: #544e4a; font-size: 14px; font-weight: 600; text-decoration: none; }
nav a:hover { color: var(--rust); }
.print-button { appearance: none; border: 1px solid var(--rust); border-radius: 999px; background: transparent; color: var(--rust-dark); padding: 9px 15px; font: 600 14px/1 "DM Sans", sans-serif; display: inline-flex; align-items: center; gap: 7px; cursor: pointer; }
.print-button:hover { background: var(--rust); color: white; }.print-button svg { width: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.hero { max-width: 1180px; margin: 0 auto; padding: 92px 28px 74px; position: relative; overflow: hidden; }
.hero > *:not(.nutcracker-silhouette) { position: relative; z-index: 1; }
.nutcracker-silhouette { position: absolute; z-index: 0; top: 38px; right: 28px; width: 238px; height: auto; opacity: .09; pointer-events: none; user-select: none; }
.hero-kicker, .eyebrow { color: var(--rust); font-size: 13px; line-height: 1.2; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
h1, h2 { font-family: "Playfair Display", Georgia, serif; }
h1 { max-width: 860px; margin: 18px 0 22px; font-size: clamp(3rem, 7vw, 6rem); line-height: .98; letter-spacing: -.045em; }
h1 em { color: var(--rust); font-weight: 600; }
.hero-summary { max-width: 640px; margin: 0 0 30px; color: var(--muted); font-size: 19px; }
.important { max-width: 760px; padding: 18px 20px; border-left: 4px solid var(--rust); background: var(--white); box-shadow: 0 10px 35px rgba(65, 45, 36, .06); }
.important strong { color: var(--rust-dark); text-transform: uppercase; letter-spacing: .08em; font-size: 13px; }
.hero-meta { margin-top: 42px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 13px; }

.section { max-width: 1180px; margin: 0 auto; padding: 78px 28px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.section-heading h2 { margin: 6px 0 0; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.05; letter-spacing: -.03em; }
.section-heading > p { color: var(--muted); margin: 0 0 5px; font-size: 14px; }
.table-wrap { background: white; border-radius: 2px; box-shadow: 0 18px 55px rgba(62, 46, 38, .08); overflow: hidden; }
table { width: 100%; border-collapse: collapse; }
th { background: var(--rust); color: white; padding: 15px 17px; text-align: left; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
td { padding: 14px 17px; border-bottom: 1px solid var(--line); vertical-align: top; }
td:first-child { width: 16%; font-weight: 700; color: var(--rust-dark); white-space: nowrap; }
td:nth-child(2) { width: 15%; white-space: nowrap; }
td:nth-child(3) { width: 37%; font-weight: 600; }
td:nth-child(4) { color: var(--muted); }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover { background: #fbf8f5; }
.tag { display: inline-block; margin: 4px 0 0 5px; padding: 3px 7px; color: var(--rust-dark); background: var(--blush); border-radius: 999px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.tag.dark { color: white; background: var(--rust-dark); }
.event-row td:first-child, .performance-row td:first-child { box-shadow: inset 4px 0 0 var(--gold); }
.full-cast { background: #f5eee9; }
.performance-row { background: #f7eee7; }
.rest-row { background: #efefed; }

.notes-section { background: var(--night); color: white; padding: 84px max(28px, calc((100vw - 1124px)/2)); }
.section-heading.light .eyebrow { color: #d9aa8f; }.section-heading.light h2 { color: white; }
.notes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #4e4a47; border: 1px solid #4e4a47; }
.notes-grid article { min-height: 220px; padding: 30px; background: var(--night); }
.notes-grid article > span { color: #c8896f; font: 600 15px/1 "Playfair Display", serif; }
.notes-grid h3 { margin: 32px 0 8px; font-family: "Playfair Display", Georgia, serif; font-size: 21px; }
.notes-grid p { margin: 0; color: #d7d3d0; font-size: 15px; }

.cast-section { padding-top: 92px; }
.cast-columns { display: grid; grid-template-columns: 1.25fr 1fr; gap: 28px; }
.cast-block { background: white; padding: 30px; box-shadow: 0 15px 48px rgba(62, 46, 38, .06); }
.cast-block h3 { margin: 0 0 18px; color: var(--rust); font: 700 14px/1.2 "DM Sans", sans-serif; letter-spacing: .14em; text-transform: uppercase; }
dl { margin: 0; }
dl div { display: grid; grid-template-columns: 1.1fr 1fr; gap: 18px; padding: 11px 0; border-bottom: 1px solid var(--line); }
dl div:last-child { border-bottom: 0; }
dt { font-weight: 600; } dd { margin: 0; color: var(--muted); }
.rental-note { margin-top: 28px; padding: 28px 30px; background: var(--blush); display: flex; gap: 22px; align-items: flex-start; }
.rental-icon { width: 45px; height: 45px; flex: 0 0 45px; display: grid; place-items: center; border: 1px solid var(--rust); border-radius: 50%; color: var(--rust); font-size: 21px; }
.rental-note h3 { margin: 0 0 7px; font: 700 21px/1.2 "Playfair Display", serif; }.rental-note p { margin: 0; color: #554a45; }

footer { padding: 48px 28px; background: #eee8e2; display: flex; align-items: center; justify-content: center; gap: 24px; color: var(--muted); font-size: 13px; }
.footer-mark { color: var(--rust); font: 700 25px/1 "Playfair Display", serif; } footer a { margin-left: auto; color: var(--rust-dark); font-weight: 700; text-decoration: none; }

@media (max-width: 820px) {
  .header-inner { min-height: 68px; padding: 0 18px; }.brand-name, nav { display: none; }.print-button { padding: 9px 13px; }
  .hero { padding: 66px 20px 52px; }.nutcracker-silhouette { top: 48px; right: -54px; width: 180px; opacity: .055; }.hero-summary { font-size: 17px; }.hero-meta { flex-direction: column; }
  .section { padding: 58px 18px; }.section-heading { align-items: start; flex-direction: column; gap: 8px; }
  .table-wrap { background: transparent; box-shadow: none; overflow: visible; } table, tbody, tr, td { display: block; width: 100% !important; } thead { display: none; }
  tbody { display: grid; gap: 14px; } tbody tr { position: relative; padding: 18px 18px 14px; background: white; border: 1px solid var(--line); box-shadow: 0 8px 25px rgba(62, 46, 38, .05); }
  tbody tr:hover { background: white; } tbody tr.full-cast, tbody tr.performance-row { background: #faf4ef; } tbody tr.rest-row { background: #efefed; }
  td { border: 0; padding: 4px 0 4px 94px; min-height: 29px; white-space: normal !important; }
  td::before { content: attr(data-label); position: absolute; left: 18px; color: #8a817b; font-size: 11px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
  td:first-child { color: var(--rust-dark); box-shadow: none !important; }
  .tag { margin-left: 0; }
  .notes-section { padding: 62px 18px; }.notes-grid { grid-template-columns: 1fr; }.notes-grid article { min-height: auto; padding: 24px; }.notes-grid h3 { margin-top: 20px; }
  .cast-columns { grid-template-columns: 1fr; }.cast-block { padding: 23px 20px; } dl div { grid-template-columns: 1fr; gap: 2px; }.rental-note { padding: 24px 20px; }
  footer { align-items: flex-start; flex-wrap: wrap; justify-content: flex-start; } footer p { width: calc(100% - 70px); margin: 2px 0; } footer a { margin-left: 0; }
}

@media print {
  @page { size: letter landscape; margin: .4in; }
  body { background: white; color: black; font-size: 10px; }
  .site-header, .nutcracker-silhouette, .print-button, footer { display: none !important; }
  .hero, .section, .notes-section { max-width: none; padding: 18px 0; }
  .hero { page-break-after: avoid; }.hero h1 { font-size: 32px; margin: 8px 0; }.hero-summary, .important { margin: 0 0 8px; }.hero-meta { margin-top: 8px; padding-top: 6px; }
  .section-heading { margin-bottom: 9px; }.section-heading h2 { font-size: 24px; }
  .table-wrap, .cast-block { box-shadow: none; } th { padding: 6px; } td { padding: 5px 6px; }
  .notes-section { background: white; color: black; break-before: page; }.section-heading.light h2 { color: black; }.notes-grid { grid-template-columns: repeat(3, 1fr); background: #bbb; }.notes-grid article { color: black; background: white; min-height: 0; padding: 12px; }.notes-grid h3 { margin: 5px 0; }.notes-grid p { color: black; }
  .cast-section { break-before: page; }.cast-block { padding: 12px; } dl div { padding: 3px 0; }.rental-note { margin-top: 10px; padding: 12px; }
}

.preparation h3 { margin-top: 1.7rem; }
.preparation p, .preparation li { line-height: 1.65; }
.preparation ul { padding-left: 1.5rem; }
.site-header nav { flex-wrap: wrap; }
