/* The hidden attribute only sets display:none in the UA stylesheet, so any
   later display rule on a routed view would silently beat it and render every
   route at once. This guard has to stay ahead of everything else. */
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
:root{
  --paper:#f7f3ea; --sheet:#fffdf8; --wash:#efe9dc; --line:#d3c9b6; --line2:#b3a68c;
  --ink:#191512; --ink2:#3b332c; --soft:#736657;
  --blood:#8c1f28; --bloodwash:#f6e9e6; --gold:#9a7326; --okwash:#e9efe4; --ok:#3f6b39;
  --disp:"Iowan Old Style",Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif;
  --body:Georgia,"Times New Roman",serif;
  --ui:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif;
  --num:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --pad:clamp(1.1rem,4vw,4rem); --max:88rem;
}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.62 var(--body);overflow-x:hidden}
h1,h2,h3{margin:0;line-height:1.1;font-weight:400;letter-spacing:-.015em}
p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--blood);outline-offset:2px}
.jump{position:fixed;top:6px;left:6px;z-index:99;background:var(--ink);color:#fff;
  padding:.6rem .9rem;font:600 .8rem var(--ui);text-decoration:none;transform:translateY(-220%)}
.jump:focus{transform:none}
main:focus{outline:none}

/* ------------------------------------------------------------- demo bar */
.demobar{background:var(--ink);color:#e9e2d6;padding:.6rem var(--pad)}
.demobar p{max-width:var(--max);margin:0 auto;font:.76rem/1.5 var(--ui)}
.demobar b{color:#fff}

/* ------------------------------------------------------------ masthead */
.masthead{position:sticky;top:0;z-index:40;display:flex;align-items:baseline;gap:1.2rem;
  padding:1rem var(--pad);background:var(--paper);border-bottom:2px solid var(--ink)}
.masthead__mark{margin-right:auto;font:400 1.6rem/1 var(--disp);text-decoration:none;letter-spacing:-.02em}
.masthead__mark em{font-style:italic;color:var(--blood)}
.masthead__menu{display:none;border:1px solid var(--ink);background:none;padding:.45rem .75rem;
  font:600 .78rem var(--ui)}
#nav{display:flex;gap:1.35rem}
#nav a{font:600 .84rem var(--ui);text-decoration:none;color:var(--ink2)}
#nav a[aria-current]{color:var(--blood);text-decoration:underline;text-underline-offset:.32em;text-decoration-thickness:2px}
.nav-desk{color:var(--blood)!important}

/* --------------------------------------------------------------- views */
.view{max-width:var(--max);margin:0 auto;padding:2.4rem var(--pad) 4.5rem}
.view__h{font:400 clamp(2rem,4.4vw,3.4rem)/1.04 var(--disp);margin-bottom:.6rem}
.view__sub{max-width:56ch;color:var(--ink2);font-size:1.05rem;margin-bottom:2.2rem}
.view__note{margin-top:2rem;max-width:64ch;font-size:.92rem;color:var(--soft)}
.eyebrow{font:700 .68rem/1.4 var(--ui);letter-spacing:.13em;text-transform:uppercase;color:var(--blood);margin-bottom:.6rem}
.sub__h{font:700 .74rem/1.4 var(--ui);letter-spacing:.11em;text-transform:uppercase;
  color:var(--soft);margin:2.2rem 0 .8rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}

/* ------------------------------------------------------------ the issue */
.view--issue{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(2rem,5vw,5rem) clamp(2rem,5vw,4.5rem);
  align-items:start}
.folio{font:600 .72rem/1.4 var(--num);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin-bottom:1.1rem}
.lede h1{font:400 clamp(2.4rem,5.6vw,4.6rem)/1 var(--disp);max-width:14ch;letter-spacing:-.03em}
.lede__sub{margin-top:1.4rem;max-width:48ch;font-size:1.1rem;color:var(--ink2)}
.lede__sub a{color:var(--blood)}
.lede__cta{margin-top:1.9rem;display:flex;flex-wrap:wrap;gap:.6rem}

.btn{display:inline-block;padding:.72rem 1.1rem;border:1.5px solid transparent;background:none;
  font:600 .88rem var(--ui);text-decoration:none}
.btn--go{background:var(--blood);border-color:var(--blood);color:#fff}
.btn--go:hover{background:#74161e}
.btn--plain{border-color:var(--ink);color:var(--ink)}
.btn--plain:hover{background:var(--ink);color:var(--paper)}
.btn--sm{padding:.45rem .75rem;font-size:.78rem}
.btn:disabled{opacity:.42;cursor:not-allowed}

.masthead-panel{background:var(--sheet);border:1px solid var(--line);padding:1.5rem 1.6rem}
.masthead-panel__h{font:700 .7rem/1.4 var(--ui);letter-spacing:.12em;text-transform:uppercase;
  color:var(--soft);padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.toc{list-style:none;margin:0;padding:0}
.toc li{display:grid;grid-template-columns:2.2rem 1fr;gap:.9rem;padding:.75rem 0;border-bottom:1px solid var(--wash)}
.toc li:last-child{border-bottom:0}
.toc span{font:.7rem/1.5 var(--num);color:var(--soft)}
.toc b{display:block;font:400 1.02rem/1.25 var(--disp)}
.toc i{font:.74rem var(--ui);font-style:normal;color:var(--soft)}
.issue-note{grid-column:1/-1;border-top:2px solid var(--ink);padding-top:1.4rem}
.issue-note p{max-width:80ch;font-size:.95rem;color:var(--ink2)}

/* ------------------------------------------------------------- library */
.filters{display:grid;gap:1rem;padding-bottom:1.4rem;border-bottom:1px solid var(--line)}
.filterset{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}
.filterset__label{font:700 .68rem var(--ui);letter-spacing:.11em;text-transform:uppercase;color:var(--soft);min-width:4rem}
.pickrow{display:flex;flex-wrap:wrap;gap:.4rem}
.pick{border:1px solid var(--line);background:var(--sheet);padding:.45rem .8rem;font:600 .82rem var(--ui);color:var(--ink2)}
.pick:hover{border-color:var(--ink)}
.pick.is-on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.count{margin:1.1rem 0;font:.74rem var(--num);color:var(--soft)}
.library{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.library li{display:grid;grid-template-columns:8rem 1fr 10rem;gap:1.5rem;padding:1.35rem 0;border-bottom:1px solid var(--line)}
.library .form{font:.68rem/1.5 var(--num);letter-spacing:.06em;text-transform:uppercase;color:var(--blood)}
.library h2{font:400 1.35rem/1.2 var(--disp)}
.library .by{margin-top:.2rem;font:.8rem var(--ui);color:var(--soft)}
.library .ex{margin-top:.5rem;max-width:56ch;font-size:.94rem;color:var(--ink2)}
.library .theme{font:.74rem var(--ui);color:var(--soft);text-align:right}

/* -------------------------------------------------------------- submit */
.warnbox{background:var(--bloodwash);border-left:4px solid var(--blood);padding:.85rem 1rem;
  font:.9rem/1.55 var(--ui);color:#5e1a20;max-width:74ch}
.trackrow{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.1rem}
.trackcard{background:var(--sheet);border:1px solid var(--line);padding:1.15rem 1.3rem;max-width:74ch}
.trackcard.is-shut{background:var(--bloodwash);border-color:#e0c3c0}
.trackcard dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.1rem;margin:.7rem 0 0;font-size:.9rem}
.trackcard dt{font:700 .68rem var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--soft);white-space:nowrap;align-self:center}
.trackcard dd{margin:0}
.trackcard__h{font:400 1.25rem/1.2 var(--disp)}
.shut{display:inline-block;margin-left:.5rem;background:var(--blood);color:#fff;
  font:700 .62rem var(--ui);letter-spacing:.07em;text-transform:uppercase;padding:.15rem .4rem;vertical-align:.15em}

.split{display:grid;grid-template-columns:1.15fr 1fr;gap:1.6rem;margin-top:1.4rem;align-items:start}
.doc__label{font:700 .68rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin-bottom:.5rem}
.doc__text{width:100%;background:var(--sheet);border:1px solid var(--line);padding:1.2rem 1.3rem;
  font:.94rem/1.7 var(--body);color:var(--ink2);resize:none;white-space:pre-wrap}
.doc__meta{margin-top:.5rem;font:.74rem var(--num);color:var(--soft)}

.checkpanel{background:var(--wash);border:1px solid var(--line);padding:1.3rem 1.4rem}
.checkpanel__h{font:700 .7rem var(--ui);letter-spacing:.11em;text-transform:uppercase;color:var(--soft);margin-bottom:.5rem}
.checkpanel__h+.checkpanel__note{margin-bottom:.9rem}
.checkpanel__note{font:.87rem/1.55 var(--ui);color:var(--ink2)}
.checkpanel .btn{margin-top:.3rem}
.declare{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start;
  margin-bottom:1.6rem;font:.87rem/1.5 var(--ui)}
.declare input{margin-top:.2rem;width:1.05rem;height:1.05rem;accent-color:var(--blood)}

.verdict{margin-top:1rem;padding:.9rem 1rem;background:var(--okwash);border-left:4px solid var(--ok)}
.verdict--no{background:var(--bloodwash);border-left-color:var(--blood)}
.verdict__h{font:700 .95rem var(--ui)}
.verdict__b{margin-top:.35rem;font:.88rem/1.55 var(--ui);color:var(--ink2)}
.verdict__id{margin-top:.5rem;font:.75rem var(--num);color:var(--soft)}

/* ------------------------------------------------------------ contests */
.tracklist{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.tracklist li{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:1.2rem;
  padding:1.2rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.tracklist h2{font:400 1.2rem/1.2 var(--disp)}
.tracklist .rule{margin-top:.25rem;font-size:.88rem;color:var(--soft);max-width:44ch}
.tracklist dt{font:700 .64rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.tracklist dd{margin:.15rem 0 0;font:.95rem var(--num)}
.tracklist .closed dd{color:var(--blood)}

/* ---------------------------------------------------------------- desk */
.view--desk{max-width:100rem}
.deskhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.2rem}
.deskhead__tools{display:flex;align-items:center;gap:1rem}
.blindtoggle{display:flex;align-items:center;gap:.5rem;font:600 .82rem var(--ui);
  background:var(--sheet);border:1px solid var(--line);padding:.45rem .75rem}
.blindtoggle input{width:1rem;height:1rem;accent-color:var(--blood)}

.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);
  background:var(--sheet);margin-bottom:1.4rem}
.metrics div{padding:1rem 1.1rem;border-right:1px solid var(--line)}
.metrics div:last-child{border-right:0}
.metrics b{display:block;font:600 1.9rem/1 var(--num)}
.metrics span{display:block;margin-top:.3rem;font:.7rem/1.4 var(--ui);letter-spacing:.06em;
  text-transform:uppercase;color:var(--soft)}

.deskgrid{display:grid;grid-template-columns:1.25fr 1fr;gap:1.2rem;align-items:start}
.queue,.detail{background:var(--sheet);border:1px solid var(--line)}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding:.85rem 1.1rem;border-bottom:1px solid var(--line)}
.panel-head h2{font:700 .78rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}
.seg-label{display:flex;align-items:center;gap:.45rem;font:600 .74rem var(--ui);color:var(--soft)}
.seg-label select{border:1px solid var(--line);background:var(--paper);padding:.3rem .4rem;font-size:.78rem}

.qrow{width:100%;display:grid;grid-template-columns:4.6rem 1fr 6.4rem;gap:.9rem;align-items:baseline;
  padding:.9rem 1.1rem;border:0;border-bottom:1px solid var(--wash);background:none;text-align:left}
.qrow:hover{background:var(--wash)}
.qrow.is-on{background:var(--ink);color:var(--paper)}
.qrow.is-on .qrow__id,.qrow.is-on .qrow__tier{color:#c9bda9}
.qrow__id{font:.7rem var(--num);color:var(--soft)}
.qrow__t{font:400 1rem/1.25 var(--disp)}
.qrow__by{display:block;margin-top:.15rem;font:.74rem var(--ui);color:var(--soft)}
.qrow.is-on .qrow__by{color:#c9bda9}
.qrow__tier{font:.7rem var(--num);color:var(--soft);text-align:right}
.empty{padding:1.4rem 1.1rem;font:.86rem var(--ui);color:var(--soft)}

.detail{padding:1.2rem 1.3rem}
.detail__idle{font:.9rem var(--ui);color:var(--soft)}
.detail__t{font:400 1.5rem/1.15 var(--disp)}
.detail__by{margin-top:.3rem;font:.85rem var(--ui);color:var(--soft)}
.masked{background:var(--wash);color:var(--soft);padding:.05rem .4rem;font:.78rem var(--num)}
.detail dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;margin:1.1rem 0;
  padding:.9rem 0;border-block:1px solid var(--line);font-size:.9rem}
.detail dt{font:700 .64rem var(--ui);letter-spacing:.09em;text-transform:uppercase;color:var(--soft);align-self:center}
.detail dd{margin:0}
.flagline{color:var(--blood);font-weight:700}
.scores{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0 1rem}
.score{border:1px solid var(--line);background:var(--paper);width:2.3rem;height:2.3rem;font:600 .9rem var(--num)}
.score:hover{border-color:var(--ink)}
.score.is-on{background:var(--blood);border-color:var(--blood);color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.rule-note{margin-top:.8rem;padding:.7rem .85rem;background:var(--wash);font:.82rem/1.5 var(--ui);color:var(--ink2)}
.flag-note{margin-top:.8rem;padding:.7rem .85rem;background:var(--bloodwash);
  border-left:3px solid var(--blood);font:.82rem/1.5 var(--ui);color:#5e1a20}
.response{margin-top:1rem;padding:1rem;background:var(--paper);border:1px dashed var(--line2)}
.response h3{font:700 .66rem var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);margin-bottom:.5rem}
.response p{font:.9rem/1.65 var(--body);color:var(--ink2);white-space:pre-wrap}
.history{list-style:none;margin:1rem 0 0;padding:.9rem 0 0;border-top:1px solid var(--line)}
.history li{display:grid;grid-template-columns:5.5rem 1fr;gap:.8rem;padding:.3rem 0;font:.76rem/1.5 var(--num);color:var(--soft)}

/* -------------------------------------------------------------- footer */
.foot{border-top:2px solid var(--ink);background:var(--ink);color:#d9d0c2;padding:1.6rem var(--pad)}
.foot__note{max-width:var(--max);margin:0 auto .6rem;font:.78rem/1.6 var(--ui)}
.foot__back{display:block;max-width:var(--max);margin:0 auto;color:#fff;font:700 .82rem var(--ui)}

/* ------------------------------------------------------------ narrow */
@media(max-width:960px){
  .view--issue,.split,.deskgrid,.tracklist li{grid-template-columns:1fr}
  .metrics{grid-template-columns:1fr 1fr}
  .metrics div:nth-child(2){border-right:0}
  .metrics div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .library li{grid-template-columns:1fr;gap:.3rem}
  .library .theme{text-align:left}
  .tracklist li{gap:.5rem}
}
@media(max-width:760px){
  .masthead__menu{display:block}
  #nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:var(--paper);border-bottom:2px solid var(--ink);padding:.3rem var(--pad) .9rem}
  #nav.is-open{display:flex}
  #nav a{padding:.6rem 0}
  .deskhead__tools{width:100%}
}
@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
