:root{--ink:#202b34;--muted:#5f6d78;--paper:#f4f8fb;--white:#fff;--rust:#2f5271;--rust-dark:#1f3a52;--blush:#dbe8f2;--line:#d6e0e7;--night:#1d2d3a;--gold:#d0a95a}
*{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(244,248,251,.94);border-bottom:1px solid rgba(47,82,113,.2);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:#9aa6af}.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:#465967;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:#fff}.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;background:radial-gradient(circle at 96% 18%,rgba(239,104,118,.22) 0 9px,transparent 10px),radial-gradient(circle at 89% 9%,rgba(208,169,90,.28) 0 6px,transparent 7px),radial-gradient(circle at 95% 72%,rgba(42,180,190,.18) 0 12px,transparent 13px)}.hero>*:not(.playful-nutcracker){position:relative;z-index:1}.playful-nutcracker{position:absolute;z-index:0;top:26px;right:30px;width:250px;height:auto;opacity:.22;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:900px;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:650px;margin:0 0 30px;color:var(--muted);font-size:19px}.important{max-width:860px;padding:18px 20px;border-left:4px solid var(--rust);background:var(--white);box-shadow:0 10px 35px rgba(30,62,88,.08)}.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:#fff;box-shadow:0 18px 55px rgba(62,46,38,.08);overflow:hidden}table{width:100%;border-collapse:collapse}th{background:var(--rust);color:#fff;padding:15px 17px;text-align:left;font-size:12px;letter-spacing:.12em;text-transform:uppercase}td{padding:18px 17px;border-bottom:1px solid var(--line);vertical-align:top}td:first-child{width:19%;font-weight:700;color:var(--rust-dark);white-space:nowrap}td:nth-child(2){width:32%;font-weight:600}td:nth-child(3){color:var(--muted)}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbf8f5}.detail{font-size:14px;color:#7a716b}.tag{display:inline-block;margin:5px 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:#fff;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}
.cast-section{background:var(--night);color:#fff;padding:84px 28px}.cast-inner{max-width:1124px;margin:0 auto}.section-heading.light .eyebrow{color:#9fc4df}.section-heading.light h2{color:#fff}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.role-grid article{min-height:230px;padding:30px;background:#263a4a;border:1px solid #496478;display:flex;flex-direction:column}.role-level{color:#a9cee8;font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.ornament{margin-top:auto;color:var(--gold);font-size:18px}.role-grid h3{margin:10px 0 0;font:600 34px/1.1 "Playfair Display",serif}.role-grid p{margin:5px 0 0;color:#d7e1e8}
.notes-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.notes-grid article{padding:25px 26px;background:#fff;border-top:3px solid var(--rust);box-shadow:0 10px 35px rgba(62,46,38,.05);display:flex;gap:18px;align-items:flex-start}.notes-grid article>span{color:var(--rust);font:600 16px/1.4 "Playfair Display",serif}.notes-grid p{margin:0}.notes-grid .wide{grid-column:1/-1;background:var(--blush)}
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;background:radial-gradient(circle at 92% 12%,rgba(239,104,118,.18) 0 7px,transparent 8px),radial-gradient(circle at 82% 7%,rgba(208,169,90,.24) 0 5px,transparent 6px)}.playful-nutcracker{top:55px;right:-52px;width:178px;opacity:.12}.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:#fff;border:1px solid var(--line);box-shadow:0 8px 25px rgba(62,46,38,.05)}tbody tr:hover{background:#fff}tbody tr.full-cast,tbody tr.performance-row{background:#faf4ef}tbody tr.rest-row{background:#efefed}td{border:0;padding:4px 0 4px 92px;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}.cast-section{padding:62px 18px}.role-grid{grid-template-columns:1fr}.role-grid article{min-height:175px}.notes-grid{grid-template-columns:1fr}.notes-grid .wide{grid-column:auto}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:#fff;color:#000;font-size:10px}.site-header,.playful-nutcracker,.print-button,footer{display:none!important}.hero{background:none}.hero,.section,.cast-section{max-width:none;padding:18px 0}.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{box-shadow:none}th{padding:7px}td{padding:7px}.cast-section{background:#fff;color:#000;break-before:page}.section-heading.light h2{color:#000}.role-grid article{min-height:150px;background:#fff;color:#000}.notes{break-before:page}.notes-grid article{box-shadow:none;border:1px solid #ccc}}

.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; }
