:root{
  --navy:#0b1f3a; --gold:#c49a45; --ivory:#f7f2e8; --red:#b52632;
  --rule:#e2dccd; --tint:#f4f1e6; --ink:#15181d; --muted:#5a6270;
  --paper:#fffdf8; --fs:1.06rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--navy); color:var(--ink);
  font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:var(--fs); line-height:1.62;
}
img{max-width:100%;height:auto}
button{font-family:inherit;font-size:.92rem;cursor:pointer}

/* quick exit */
.exitbar[hidden]{display:none!important}
.exitbar{
  position:sticky; top:0; z-index:40; background:var(--red); color:#fff;
  display:flex; align-items:center; gap:.75rem; flex-wrap:wrap;
  padding:.55rem .9rem; border-bottom:2px solid #7d1a22;
}
.exitbar .exit{
  background:#fff; color:var(--red); border:0; border-radius:4px;
  font-weight:700; letter-spacing:.04em; padding:.6rem 1.15rem;
  min-height:44px; text-transform:uppercase;
}
.exitbar .exit:hover{background:#ffe9ea}
.exitnote{font-size:.78rem;line-height:1.35;opacity:.95;max-width:34rem}

/* masthead */
.mast{
  background:var(--navy); color:var(--ivory);
  padding:1.6rem 1.1rem 1.5rem; text-align:center;
  border-bottom:3px solid var(--gold);
}
.lock{min-height:72px;display:flex;justify-content:center;align-items:center;margin-bottom:1rem}
.lock img{width:191px}
.series{
  font-family:"Cinzel",Georgia,serif; font-size:.74rem; font-weight:600;
  letter-spacing:.42em; color:var(--gold); margin-bottom:.5rem;
}
.mast h1{
  font-family:"Cormorant Garamond",Georgia,serif; font-weight:700;
  font-size:clamp(2rem,8vw,3rem); line-height:1.08; margin:0 0 .5rem;
  color:var(--ivory);
}
.mast .sub{
  margin:0 auto; max-width:30rem; font-size:.92rem; line-height:1.5;
  color:#cfd6e2; font-style:italic;
}

/* control bar */
.bar{
  position:sticky; top:0; z-index:30; background:var(--tint);
  border-bottom:1px solid var(--rule); padding:.6rem .75rem;
  box-shadow:0 2px 10px rgba(11,31,58,.12);
}
body.hasexit .bar{top:0}
.crisisrow{margin-bottom:.5rem}
.bar .crisisrow button.crisis{
  display:block; width:100%; background:var(--red); color:#fff; border:0;
  border-radius:5px; padding:.75rem 1rem; min-height:46px;
  font-weight:700; letter-spacing:.03em;
}
.bar .crisisrow button.crisis:hover{background:#9c1f29}
.bar .row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.bar .row button{
  background:var(--paper); color:var(--navy); border:1px solid var(--rule);
  border-radius:5px; padding:.5rem .8rem; min-height:40px; font-weight:600;
}
.bar .row button:hover{background:#fff;border-color:var(--gold)}
.sizewrap{display:flex;align-items:center;gap:.3rem;margin-left:auto}
.sizewrap span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.status{font-size:.78rem;color:var(--muted);margin-top:.4rem;min-height:1em}

/* page */
main{max-width:46rem;margin:0 auto;padding:1.1rem .85rem 2.5rem}
.sheet{
  background:var(--paper); border:1px solid var(--rule); border-top:4px solid var(--gold);
  border-radius:3px; padding:1.7rem 1.3rem 2rem;
  box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.sheet .part{
  font-family:"Cinzel",Georgia,serif; font-size:1.02rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--navy);
  margin:0 0 .35rem;
}
.sheet .rulebar{height:3px;background:var(--gold);width:4.5rem;margin:0 0 1.5rem}
.sheet h2{
  font-family:"Cormorant Garamond",Georgia,serif; font-weight:700;
  font-size:1.5rem; line-height:1.2; color:var(--navy);
  margin:2rem 0 .6rem;
}
.sheet h2:first-of-type{margin-top:.4rem}
.sheet h3{
  font-family:"Montserrat",sans-serif; font-weight:600; font-size:.78rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
  margin:1.5rem 0 .4rem;
}
.sheet p{margin:0 0 .95rem}
.sheet p.lead{
  font-family:"Cormorant Garamond",Georgia,serif; font-size:1.22rem;
  line-height:1.5; color:var(--navy); margin-bottom:1.4rem;
}
.sheet p.b{font-weight:600}
.sheet p.i{font-style:italic;color:var(--muted)}
.sheet ul,.sheet ol{margin:0 0 1.1rem;padding-left:1.4rem}
.sheet li{margin-bottom:.5rem}
.sheet ol li::marker{font-weight:700;color:var(--navy)}
.sheet ul li::marker{color:var(--gold)}
.tick{list-style:none;padding-left:0}
.tick li{display:flex;gap:.6rem;align-items:flex-start}
.tick li::before{content:"\2610";color:var(--navy);font-size:1.25rem;line-height:1.2}
.fill{margin:0 0 1.1rem}
.fill .lbl{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.15rem}
.fill .line{border-bottom:1px solid var(--navy);height:1.5rem}
.callout{
  background:var(--tint); border-left:4px solid var(--gold);
  padding:1rem 1.1rem; margin:0 0 1.2rem; border-radius:0 3px 3px 0;
}
.callout.red{border-left-color:var(--red);background:#fdf0f1}
.callout .ct{
  font-family:"Montserrat",sans-serif; font-weight:700; font-size:.76rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--navy);
  margin-bottom:.5rem;
}
.callout.red .ct{color:var(--red)}
.callout div.cl{margin-bottom:.3rem}
.callout div.cl:last-child{margin-bottom:0}
.callout div.cl.sp{height:.55rem}
.wrap{overflow-x:auto;margin:0 0 1.2rem}
table{border-collapse:collapse;width:100%;font-size:.88rem}
th{
  background:var(--navy); color:var(--ivory); text-align:left;
  padding:.55rem .6rem; font-weight:600; font-size:.74rem;
  letter-spacing:.1em; text-transform:uppercase;
}
td{padding:.55rem .6rem;border-bottom:1px solid var(--rule);vertical-align:top}
tr:nth-child(even) td{background:var(--tint)}

/* pager */
.pager{display:flex;gap:.6rem;margin-top:1.1rem}
.pager button{
  flex:1; background:var(--tint); color:var(--navy); border:1px solid var(--gold);
  border-radius:5px; padding:.85rem; min-height:48px; font-weight:600;
}
.pager button:hover{background:#fff}
.pager button[disabled]{opacity:.35;cursor:default}

/* drawers */
.drawer{
  position:fixed; inset:0; z-index:50; background:rgba(11,31,58,.6);
  display:none; padding:1rem; overflow:auto;
}
.drawer.open{display:block}
.panel{
  background:var(--paper); max-width:34rem; margin:1.5rem auto;
  border-top:4px solid var(--gold); border-radius:3px; padding:1.4rem 1.2rem;
}
.panel h3{
  font-family:"Cormorant Garamond",Georgia,serif; font-weight:700;
  font-size:1.5rem; color:var(--navy); margin:0 0 .9rem; letter-spacing:0;
  text-transform:none;
}
.panel a.tocitem{
  display:block; padding:.7rem .2rem; border-bottom:1px solid var(--rule);
  color:var(--navy); text-decoration:none; font-weight:600; font-size:.95rem;
}
.panel a.tocitem:hover{color:var(--gold)}
.panel a.tocitem.on{color:var(--gold)}
.panelbtn{
  width:100%; margin-top:1.1rem; background:var(--navy); color:var(--ivory);
  border:0; border-radius:5px; padding:.85rem; min-height:46px; font-weight:600;
}

/* footer */
.foot{
  background:var(--navy); color:#aeb8c7; text-align:center;
  padding:1.6rem 1rem 2.2rem; font-size:.78rem; line-height:1.65;
  border-top:3px solid var(--gold);
}
.foot .sign{
  font-family:"Cinzel",Georgia,serif; font-size:.72rem; font-weight:600;
  letter-spacing:.3em; color:var(--gold); margin-bottom:.7rem;
}

@media (min-width:640px){
  .sheet{padding:2.4rem 2.6rem 2.8rem}
  main{padding:1.6rem 1.2rem 3rem}
}
@media print{
  .bar,.pager,.drawer,.exitbar{display:none!important}
  body{background:#fff;font-size:11pt}
  .mast{background:#fff;color:#000;border-bottom:2px solid #000}
  .mast h1,.series{color:#000}
  .mast .sub{color:#333}
  .sheet{box-shadow:none;border:0;padding:0}
  .foot{background:#fff;color:#000}
  .foot .sign{color:#000}
}
