@font-face{font-family:Lato;src:url('fonts/Lato-Regular.ttf');font-weight:400}
@font-face{font-family:Lato;src:url('fonts/Lato-Bold.ttf');font-weight:700}
@font-face{font-family:NotoSerif;src:url('fonts/NotoSerif-Regular.ttf');font-weight:400}
@font-face{font-family:NotoSerif;src:url('fonts/NotoSerif-Bold.ttf');font-weight:700}
:root{--ink:#26343c;--navy:#183347;--blue:#426374;--gold:#a27d45;--line:#d9dedc;--paper:#fffdfa;--wash:#f5f5f1}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#eef1ef;color:var(--ink);font-family:Lato,Arial,sans-serif;line-height:1.62}
[hidden]{display:none!important}
.local-warning{position:relative;z-index:30;padding:1rem max(2rem,calc((100vw - 1050px)/2));background:#fff3d7;border-bottom:2px solid #d9ae56;color:#514127}
.local-warning p{margin:.2rem 0 0;max-width:65rem}
.local-warning code{font-family:monospace;background:#fff9e9;padding:.1rem .3rem;border-radius:3px}
a{color:#275e79;text-decoration:underline;text-underline-offset:2px}
a:hover{color:#8b6334}
.site-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:2rem;padding:.7rem max(2rem,calc((100vw - 1050px)/2));background:#fcfbf7f5;border-bottom:1px solid var(--line);backdrop-filter:blur(12px);font-size:.9rem}
.site-nav a{text-decoration:none;color:var(--navy)}
.brand{font-weight:700;letter-spacing:.12em;white-space:nowrap}
.brand b{color:var(--gold)}
.nav-links{display:flex;gap:.85rem;align-items:center;flex:1;flex-wrap:wrap}
.nav-links span{color:#8a9498;margin-left:.55rem}
.nav-links a[href^="#roteiro-"]{font-size:.78rem;min-width:1rem;text-align:center}
.pdf-button{background:var(--navy);color:#fff!important;border-radius:4px;padding:.38rem .8rem;white-space:nowrap}
main{max-width:1050px;margin:auto;background:var(--paper);box-shadow:0 12px 40px #1b344019}
.cover{min-height:720px;position:relative;overflow:hidden;background:#fbf5e8}
.cover::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#fbf5e8 0%,#fbf5e8 12%,#fbf5e8d9 32%,#fbf5e800 68%)}
.cover-image{width:100%;height:720px;object-fit:cover;object-position:center bottom;display:block}
.cover-copy{position:absolute;z-index:2;left:7.5%;top:8%;max-width:75%;color:var(--navy)}
.eyebrow,.section-label,.cover-meta{font-size:.73rem;letter-spacing:.19em;font-weight:700;color:var(--gold)}
.cover h1{font:700 clamp(2.8rem,5.1vw,5rem)/1.13 NotoSerif,Georgia,serif;letter-spacing:-.035em;margin:1.4rem 0 1rem}
.cover p{font:400 clamp(1rem,1.9vw,1.45rem)/1.4 NotoSerif,Georgia,serif;max-width:35rem;margin:0}
.cover-rule{width:4.4rem;height:2px;background:var(--gold);margin:2rem 0 1rem}
.cover-meta{color:#506675}
.contents,.overview-section,.script-section{padding:4.5rem 7.5%}
.contents{background:#fffdfa}
.contents h2,.overview-section>h2,.script-section>h2{font:700 2.7rem/1.2 NotoSerif,Georgia,serif;letter-spacing:-.025em;color:var(--navy);margin:.7rem 0 1.3rem}
.contents>p{max-width:35rem}
.contents-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0}
.contents-grid a{padding:1.1rem 1.2rem;background:var(--wash);border-left:3px solid var(--gold);text-decoration:none;color:var(--navy);font-weight:700}
.contents-grid span{color:var(--gold);margin-right:1rem}
.act-index{display:flex;gap:.55rem;flex-wrap:wrap;margin:1rem 0}
.act-index a{display:inline-flex;align-items:center;justify-content:center;min-width:2.35rem;height:2.35rem;border:1px solid var(--line);border-radius:50%;text-decoration:none;font-weight:700}
.contents-note{font-size:.88rem;color:#63717a;border-top:1px solid var(--line);padding-top:1rem}
.intro-copy{font:400 1.06rem/1.7 NotoSerif,Georgia,serif;color:#42545b;max-width:44rem;margin:0 0 3rem}
.overview-act{padding:1.85rem 0 2.5rem;border-top:1px solid var(--line);scroll-margin-top:5rem}
.overview-heading{display:flex;align-items:baseline;gap:1.25rem}
.act-num{font:700 2.6rem/1 NotoSerif,Georgia,serif;color:var(--gold);min-width:3.5rem}
.overview-heading h3{font:700 1.42rem/1.35 NotoSerif,Georgia,serif;color:var(--navy);margin:0}
.overview-copy{max-width:47rem;margin-left:4.75rem}
.overview-copy p{margin:.65rem 0}
.music-box{max-width:47rem;margin:1.2rem 0 0 4.75rem;border:1px solid var(--line);border-radius:8px;background:#fafaf8;padding:.85rem 1rem}
.music-box-head{display:flex;justify-content:space-between;gap:.7rem;align-items:baseline;margin-bottom:.35rem;color:var(--navy)}
.music-box-head span{font-size:.78rem;color:#6f7b7f}
.track-choices{display:flex;gap:.4rem;flex-wrap:wrap;margin:.7rem 0}
.track-choice{font:700 .82rem Lato,Arial,sans-serif;color:var(--navy);border:1px solid #cbd5d6;border-radius:4px;background:#fff;padding:.42rem .65rem;cursor:pointer;text-align:left}
.track-choice:hover,.track-choice:focus-visible{border-color:var(--blue);outline:2px solid #cfe0e8;outline-offset:1px}
.track-choice.active{color:#fff;background:var(--navy);border-color:var(--navy)}
.music-player{display:block;margin:.35rem 0 .25rem}
.player-frame{margin:.65rem 0 .1rem;width:min(100%,560px);aspect-ratio:16/9}
.player-frame iframe{display:block;width:100%;height:100%;border:0;border-radius:4px}
.player-footer{font-size:.78rem;color:#62717b;margin:.45rem 0 .1rem}
.source-link{margin-left:.25rem}
.pdf-track-links{display:none}
.no-music{display:flex;gap:.75rem;color:#66747a;font-size:.84rem}
.no-music b{color:var(--navy)}
.script-section{border-top:1px solid var(--line)}
.script-act{scroll-margin-top:5rem;padding:2.1rem 0 1rem;border-top:1px solid var(--line)}
.script-act+.script-act{margin-top:2.5rem}
.act-opening h3{font:700 2.1rem/1.25 NotoSerif,Georgia,serif;color:var(--navy);margin:.65rem 0 .3rem}
.act-opening h3 span{font-size:1.35rem}
.act-subtitle{font:400 1.05rem/1.4 NotoSerif,Georgia,serif;color:#5d6d73;margin:0 0 1.2rem}
.act-opening img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:5px;border:1px solid #e7e1d4}
.script-body{margin-top:1.5rem;max-width:52rem}
.script-music .music-box{max-width:100%;margin:1.4rem 0 0}
.script-body h2{font:700 1.25rem NotoSerif,Georgia,serif;color:var(--navy);border-bottom:1px solid var(--line);padding-bottom:.3rem;margin:2rem 0 .8rem}
.script-body h3{font:700 1.03rem NotoSerif,Georgia,serif;color:var(--navy);margin:1.7rem 0 .6rem}
.script-body h3.scene-heading{background:#eff3f2;padding:.55rem .8rem;border-left:3px solid var(--gold)}
.script-body p{margin:.65rem 0}
.script-body p.dialogue{margin:.55rem 0 .6rem 1rem;line-height:1.58}
.script-body p.dialogue strong{color:#1d4b60;font-size:.88rem;letter-spacing:.025em}
.script-body p.direction{font:italic .92rem/1.55 NotoSerif,Georgia,serif;color:#596467;background:#f6f5f1;border-left:2px solid #d7c5a5;padding:.58rem .8rem;margin:1rem 0}
.script-body ul{padding-left:1.2rem}
.script-body li{margin:.3rem 0}
.script-body table{border-collapse:collapse;width:100%;font-size:.87rem;margin:1rem 0}
.script-body th{background:var(--navy);color:#fff;text-align:left;padding:.55rem}
.script-body td{border-bottom:1px solid var(--line);padding:.55rem;vertical-align:top}
footer{text-align:center;color:#7c8a8c;font-size:.75rem;letter-spacing:.04em;padding:2rem}
@media(max-width:700px){.site-nav{padding:.6rem 1rem;gap:.8rem;flex-wrap:wrap}.nav-links{order:3;width:100%;justify-content:center;font-size:.78rem}.nav-links span{display:none}.cover,.cover-image{min-height:590px;height:590px}.cover-copy{left:6%;top:5%;max-width:88%}.cover h1{font-size:2.5rem}.contents,.overview-section,.script-section{padding:2.8rem 6%}.contents-grid{grid-template-columns:1fr}.overview-copy,.music-box{margin-left:0}.act-num{font-size:2rem;min-width:2.3rem}.overview-heading h3{font-size:1.2rem}.script-body table{display:block;overflow-x:auto}}
@page{size:A4;margin:17mm 17mm 18mm}
@page:first{margin:0;@top-left{content:none}@top-right{content:none}@bottom-right{content:none}}
@media print{
  html{font-size:9.3pt;line-height:1.5}
  body{background:#fff;line-height:1.5}
  main{width:auto;max-width:none;box-shadow:none}
  .site-nav,.local-warning,footer,.music-player,.track-choices{display:none!important}
  .cover{height:297mm;min-height:0;width:210mm;break-after:page;background:#fbf5e8}
  .cover::after{display:none}
  .cover-image{position:absolute;bottom:0;left:0;width:210mm;height:212mm;min-height:0;object-fit:cover;object-position:center bottom}
  .cover-copy{left:20mm;right:20mm;top:18mm;max-width:none}
  .cover h1{font-size:29pt;margin:9mm 0 5mm}
  .cover p{font-size:12pt}
  .cover-rule{margin:8mm 0 4mm}
  .eyebrow,.section-label,.cover-meta{font-size:7pt}
  .contents,.overview-section,.script-section{padding:0}
  .contents{break-after:page;padding-top:9mm}
  .contents h2,.overview-section>h2,.script-section>h2{font-size:23pt;margin:3mm 0 7mm}
  .contents-grid{gap:3mm;margin:10mm 0}
  .contents-grid a{padding:3mm 4mm}
  .act-index{margin:8mm 0}
  .act-index a{width:10mm;height:10mm;min-width:10mm}
  .overview-section{break-after:page}
  .intro-copy{font-size:9.5pt;margin-bottom:9mm}
  .overview-act{padding:5mm 0 6mm;break-inside:avoid}
  .act-num{font-size:20pt;min-width:10mm}
  .overview-heading h3{font-size:12.3pt}
  .overview-copy,.music-box{margin-left:13mm}
  .overview-copy p{margin:2.4mm 0}
  .music-box{margin-top:3mm;padding:2.5mm 3mm;font-size:8pt}
  .pdf-track-links{display:flex;flex-direction:column;gap:1.1mm}
  .pdf-track-links a{font-size:8pt}
  .music-box-head span{font-size:7pt}
  .script-section{break-before:page}
  .script-section>h2{break-after:avoid;margin-bottom:3mm}
  .script-act{border:0;margin:0;padding:0}
  .script-act+.script-act{break-before:page;margin-top:0}
  .act-opening{break-inside:avoid}
  .act-opening h3{font-size:20pt;margin:2mm 0}
  .act-opening h3 span{font-size:13pt}
  .act-subtitle{font-size:9pt;margin-bottom:4mm}
  .act-opening img{width:100%;height:70mm;aspect-ratio:auto;object-fit:cover;border-radius:2mm}
  .script-music{display:none!important}
  .script-body{margin-top:5mm}
  .script-body p{margin:2mm 0;orphans:2;widows:2}
  .script-body p.dialogue{margin:1.5mm 0 1.7mm 5mm;break-inside:avoid}
  .script-body p.direction{font-size:8pt;padding:2mm 3mm;margin:2.5mm 0;break-inside:avoid}
  .script-body h2{font-size:12pt;margin:7mm 0 2mm;break-after:avoid}
  .script-body h3{font-size:10.5pt;margin:5mm 0 2mm;break-after:avoid}
  .script-body h3.scene-heading{padding:2mm 3mm}
  .script-body h3.scene-heading+p{break-before:avoid}
  .script-body li{margin:1mm 0}
  .script-body table{font-size:7.2pt}
  .script-body th,.script-body td{padding:1.8mm}
  a{color:#2b5e75;text-decoration:none}
}
