/* built by tools/build_site.py */
/* Almanac register shared by the layout options: white paper, ink, river inks, Fraunces / Newsreader / Plex Mono. */
:root{--paper:#ffffff;--paper2:#f7f6f3;--ink:#1c1a17;--ink2:#4e4840;--ink3:#8a8073;--rule:#e6e2da;--rule2:#cfc8bb;--red:#b23a2a;--green:#3e5b4a;--amber:#a7741f;
  --ys:#7a2e1f;--md:#2f5f7a;--gl:#3e5b4a;--mo:#8a6a1f;
  --display:"Fraunces",Georgia,serif;--body:"Newsreader",Georgia,serif;--mono:"IBM Plex Mono",ui-monospace,monospace}
*{box-sizing:border-box}html,body{margin:0}
body{font-family:var(--body);color:var(--ink);background:var(--paper);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit}
header.top{display:flex;align-items:center;gap:16px;padding:12px 22px;border-bottom:1px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:50}
header.top .wordmark{font-family:var(--display);font-weight:400;font-size:19px;letter-spacing:-.01em}
header.top .wordmark i{font-style:italic;font-weight:300}
header.top .tag{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);border:1px solid var(--rule2);padding:3px 8px;border-radius:2px}
header.top .spacer{flex:1}
header.top .snap{font-family:var(--mono);font-size:11px;color:var(--ink3);letter-spacing:.04em}
header.top .snap b{color:var(--ink2);font-weight:500}
.page{max-width:1180px;margin:0 auto;padding:26px 26px 80px}
h1.q{font-family:var(--display);font-weight:400;font-variation-settings:"opsz" 144;font-size:44px;line-height:1;letter-spacing:-.02em;margin:0 0 14px}
h1.q i{font-style:italic;font-weight:300}
.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{border:1px solid var(--rule2);border-radius:2px;padding:6px 10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);background:var(--paper)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-right:2px}
.days{display:flex;gap:2px;margin:14px 0 0;border-bottom:1px solid var(--rule)}
.day{flex:1;padding:8px 2px 10px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);border-bottom:2px solid transparent;margin-bottom:-1px}
.day b{display:block;font-family:var(--display);font-weight:500;font-size:18px;letter-spacing:-.02em;color:var(--ink);margin-top:3px}
.day[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ink)}
h3.sec{font-family:var(--mono);font-weight:500;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink2);border-bottom:1px solid var(--ink);padding-bottom:6px;margin:26px 0 12px;display:flex;justify-content:space-between;gap:12px}
h3.sec span{color:var(--ink3);font-weight:400;letter-spacing:.08em}
.lede{font-size:19px;line-height:1.4;font-style:italic;color:var(--ink2);margin:0 0 6px;max-width:44em}
.lede b{font-style:normal;color:var(--ink);font-weight:600}
.note{font-size:13px;color:var(--ink3);line-height:1.5;margin-top:10px;font-style:italic}
.c-Excellent{color:var(--green)}.c-VeryGood{color:#4b7a5a}.c-Good{color:var(--ink)}.c-Marginal{color:var(--amber)}.c-Poor{color:var(--red)}.c-Closed,.c-Unavailable{color:var(--ink3)}
.colophon{margin-top:44px;border-top:3px double var(--ink);padding-top:12px;font-size:13px;color:var(--ink3);line-height:1.6;text-align:center;font-style:italic}
/* compact ranked list used by several options */
.rows .rhead{display:flex;align-items:baseline;gap:10px;padding:16px 4px 4px;border-bottom:1px solid var(--rc);color:var(--rc);font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.rows .rhead .m{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.3px solid var(--rc);font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}
.rows .rhead .line{flex:1;font-family:var(--body);font-style:italic;font-size:12.5px;letter-spacing:0;text-transform:none;color:var(--ink3);text-align:right}
.rows .card{display:grid;grid-template-columns:58px 1fr 76px;gap:12px;padding:10px 6px;border-bottom:1px solid var(--rule);cursor:pointer;align-items:center;border-left:3px solid transparent}
.rows .card:hover{background:var(--paper2);border-left-color:var(--rc)}
.rows .score{font-family:var(--display);font-weight:500;font-size:36px;line-height:1;letter-spacing:-.04em;text-align:right;font-variant-numeric:oldstyle-nums}
.rows .score small{display:block;font-family:var(--body);font-style:italic;font-weight:400;font-size:11px;color:var(--ink3);margin-top:3px}
.rows h4{margin:0;font-family:var(--display);font-weight:500;font-size:16.5px;letter-spacing:-.01em;line-height:1.2}
.rows .meta{font-size:13.5px;color:var(--ink2);margin-top:2px}
.rows .meta b{font-weight:500;color:var(--ink)}
.rows .fn{font-family:var(--mono);font-size:10px;color:var(--ink3);letter-spacing:.06em;margin-top:4px;text-transform:uppercase}
.rows .fn .r{color:var(--red)}
.rows .fish{text-align:right}
.rows .fish small{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.06em;color:var(--ink3);text-transform:uppercase;margin-top:2px}
/* detail overlay (the almanac page) */
.detail{position:fixed;inset:0;background:var(--paper);z-index:3000;overflow:auto;overflow-x:hidden;display:none}
.detail.open{display:block}
.detail .inner{max-width:1060px;margin:0 auto;padding:22px 26px 90px}
.back{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);padding:6px 0 20px}
.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--rc);display:flex;align-items:center;gap:8px}
.eyebrow .m{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.3px solid var(--rc);font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}
.feat h2{font-family:var(--display);font-weight:400;font-variation-settings:"opsz" 144;font-size:52px;line-height:1;letter-spacing:-.02em;margin:8px 0 10px}
.feat .lede{font-size:21px;line-height:1.35}
.sub{font-size:16px;color:var(--ink2);margin:0 0 18px;max-width:42em}
.hero2{display:grid;grid-template-columns:1fr 250px;gap:26px;align-items:start;margin:6px 0 16px}
.hero2 .fishbig svg{display:block;width:100%;height:auto}
.scorebox{border-top:3px double var(--ink);border-bottom:1px solid var(--ink);padding:14px 0 10px;text-align:center}
.scorebox b{display:block;font-family:var(--display);font-variant-numeric:oldstyle-nums;font-weight:500;font-size:96px;line-height:.9;letter-spacing:-.04em}
.scorebox em{display:block;font-style:italic;font-size:18px;color:var(--ink2);margin-top:6px}
.scorebox small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-top:8px}
.stamp{display:inline-block;transform:rotate(-3deg);border:3px solid var(--red);color:var(--red);font-family:var(--mono);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:12px;padding:8px 12px;border-radius:3px;margin:10px 0 4px;opacity:.9}
.restr{border-left:3px solid var(--red);padding:8px 14px;margin:12px 0 18px;font-size:15px;color:var(--ink2)}
.restr b{color:var(--red);display:block;font-family:var(--display);font-weight:600}
.restr small{display:block;font-family:var(--mono);font-size:10px;color:var(--ink3);margin-top:4px;letter-spacing:.06em}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:6px}
.dayplot svg{width:100%;height:auto;display:block}
.window{font-size:19px;font-style:italic;color:var(--ink2);margin:8px 0 0}
.window b{font-style:normal;color:var(--ink)}
table.cond{width:100%;border-collapse:collapse;font-size:15px}
table.cond td{padding:6px 0;border-bottom:1px dotted var(--rule2);vertical-align:top}
table.cond td.k{color:var(--ink2);width:48%}
table.cond td.v{font-family:var(--display);font-variant-numeric:oldstyle-nums;font-weight:500;text-align:right}
table.cond td.v sup{font-family:var(--mono);font-size:9px;color:var(--rc);margin-left:4px;letter-spacing:.06em}
.fn2{font-family:var(--mono);font-size:10px;color:var(--ink3);margin-top:8px;line-height:1.7;letter-spacing:.02em}
.fn2 sup{color:var(--rc)}
.techs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0 0}
.techs div{border-top:1px solid var(--ink);padding-top:8px}
.techs b{display:block;font-family:var(--display);font-variant-numeric:oldstyle-nums;font-weight:500;font-size:40px;line-height:1;letter-spacing:-.03em}
.techs span{display:block;font-style:italic;color:var(--ink2);font-size:15px}
.techs div.best b{color:var(--rc)}
.techs em{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--rc);font-style:normal;margin-top:4px}
/* score explanation */
.scorebox .typ{margin-top:10px;padding-top:8px;border-top:1px dotted var(--rule2);font-size:13px;font-style:italic;color:var(--ink2);line-height:1.45}
.scorebox .typ b{display:inline;font-family:var(--display);font-style:normal;font-weight:600;font-size:14px;line-height:inherit;letter-spacing:0}
.scorebox .typ b.up{color:var(--green)}.scorebox .typ b.dn{color:var(--amber)}
.scorebox .typ span{display:block;font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.06em;color:var(--ink3);margin-top:4px;text-transform:uppercase}
.factors{margin-top:4px}
.fac{display:grid;grid-template-columns:minmax(150px,220px) 1fr 40px 40px;gap:12px;align-items:center;padding:6px 0;border-bottom:1px dotted var(--rule2)}
.fac .fl{font-size:14.5px;color:var(--ink)}
.fac .fl em{display:block;font-size:12px;color:var(--ink3);font-style:italic}
.fac .fbar{height:8px;background:var(--paper2);position:relative}
.fac .fbar i{position:absolute;left:0;top:0;bottom:0;background:var(--rc);opacity:.85}
.fac .fs{font-family:var(--display);font-variant-numeric:oldstyle-nums;font-weight:500;font-size:18px;text-align:right}
.fac .fw{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--ink3);text-align:right}
@media (max-width:640px){.fac{grid-template-columns:1fr 60px 32px 34px}.fac .fl{font-size:13px}}
/* safety, access, rules */
.safety{margin:0 0 14px}
.sf{border-left:3px solid var(--amber);padding:6px 14px;margin:6px 0;font-size:15px;color:var(--ink2)}
.sf.high{border-left-color:var(--red)}
.sf.info{border-left-color:var(--rule2)}
.sf b{color:var(--ink);font-family:var(--display);font-weight:600;margin-right:4px}
.sf small{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--ink3);margin-top:3px}
.fas{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 18px}
.fas .site{border-top:1px dotted var(--rule2);padding:6px 0}
.fas .site b{display:block;font-family:var(--display);font-weight:500;font-size:15px}
.fas .site small{font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--ink3)}
.fas .note{grid-column:1/-1}
.rules .stretch{margin:0 0 10px}
.rules .stretch b{display:block;font-family:var(--display);font-weight:600;font-size:15.5px;margin-bottom:4px}
.rules .season.on,.rules .season.off{color:var(--ink3);border-color:var(--rule2);text-transform:none;letter-spacing:0;font-family:var(--body);font-style:italic;font-size:13px}
.rules .season{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border:1px solid currentColor;border-radius:2px;margin:2px 0 8px}
.rules .season.closed{color:var(--red)}
.rules .season.soon{color:var(--amber)}
.rules ul{margin:0;padding-left:1.1em;font-size:15px;line-height:1.5;color:var(--ink2)}
.rules li{margin:2px 0}
.rules details.std{margin:8px 0 4px;font-size:14px;color:var(--ink2)}
.rules details.std summary{cursor:pointer;font-style:italic;color:var(--ink3)}
.rules .note a{color:var(--ink)}
/* species plates, mix bars, notes */
.platebox img{display:block;height:auto;max-width:100%}
.platebox .rule svg{width:100%;height:auto;display:block;margin-top:4px;overflow:visible}
.platebox .credit{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--ink3);margin-top:4px;text-transform:uppercase}
.mixrow{margin-top:14px}
.mixrow svg.mix{display:block;width:100%;height:8px}
.mixkey{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;color:var(--ink2);margin-top:6px;text-transform:uppercase}
.mixkey i{display:inline-block;width:9px;height:9px;vertical-align:-1px;margin-right:5px}
.mixnote{font-family:var(--mono);font-size:9.5px;color:var(--ink3);margin-top:4px;letter-spacing:.04em}
.fishnote{font-size:15.5px;line-height:1.5;color:var(--ink2);margin:14px 0 0;border-left:3px solid var(--rc);padding:6px 14px}
.fishnote b{color:var(--ink);font-family:var(--display);font-weight:600}
.fishnote a{color:var(--rc);text-decoration:none}
.rows .fish svg.mix{display:block;width:72px;height:7px;margin-left:auto}
.spm{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.spm em{font-style:normal;font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;color:var(--ink2)}
.species .sp img{display:block;margin:0 auto 4px;height:auto}
.species{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-top:6px}
.species .sp{text-align:center}
.species .sp svg{display:block;margin:0 auto 4px}
.species .sp b{font-family:var(--display);font-variant-numeric:oldstyle-nums;font-weight:500;font-size:22px;line-height:1}
.species .sp small{display:block;font-size:12px;color:var(--ink2);font-style:italic}
.species .sp .sz{font-family:var(--mono);font-size:9.5px;color:var(--ink3);letter-spacing:.04em}
.wheelwrap{display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:start}
.wheel svg{width:100%;height:auto;display:block}
.hatchlist{font-size:15px}
.hatchlist .h{padding:8px 0;border-bottom:1px dotted var(--rule2)}
.hatchlist .h b{font-family:var(--display);font-weight:600}
.hatchlist .h .st{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;margin-left:8px;padding:1px 6px;border:1px solid currentColor;border-radius:2px}
.hatchlist .h .st.likely{color:var(--green)}.hatchlist .h .st.possible{color:var(--amber)}.hatchlist .h .st.soon{color:var(--ink3)}
.hatchlist .h p{margin:3px 0 0;color:var(--ink2);font-size:14px}
.hatchlist .h p i{color:var(--ink3)}
.outlook{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:6px}
.outlook div{border:1px solid var(--rule2);padding:10px 6px 8px;text-align:center;cursor:pointer;min-width:0;overflow:hidden}
.outlook div[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.outlook small{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}
.outlook b{display:block;font-family:var(--display);font-variant-numeric:oldstyle-nums;font-weight:500;font-size:32px;line-height:1;margin:6px 0 2px}
.outlook em{display:block;font-size:12px;font-style:italic;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:900px){.page{padding:18px 16px 60px}h1.q{font-size:32px}.hero2{grid-template-columns:1fr}.cols{grid-template-columns:1fr}.wheelwrap{grid-template-columns:1fr}.feat h2{font-size:36px}.outlook{grid-template-columns:repeat(3,minmax(0,1fr))}.detail .inner{padding:16px 16px 60px}header.top .tag,header.top .snap{display:none}.rows .card{grid-template-columns:52px 1fr 64px}.rows .score{font-size:32px}}
/* phone pass, 0.7.1: the length ruler's labels are set in SVG user units and shrink with the plate; enlarge them on small screens */
@media (max-width:640px){
  .fishbig svg text{font-size:14px}
  .fishbig svg .tick text, .fishbig svg text.tick{font-size:13px}
}

.platebox.unsurveyed img{opacity:.92}
.platebox.unsurveyed .mixnote{margin-top:8px}
.species .swatch{display:inline-block;height:14px;border-radius:2px;vertical-align:middle}

/* live site additions to the almanac layer */
header.top{gap:14px}
header.top .wordmark a{text-decoration:none;color:inherit}
header.top .dek{font-family:var(--body);font-style:italic;font-size:13.5px;color:var(--ink3);white-space:nowrap}
header.top .hl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);text-decoration:none;border-bottom:1px solid var(--rule2);padding-bottom:1px}
header.top .hl:hover{color:var(--ink);border-bottom-color:var(--ink)}
header.top .snap.stale b{color:var(--amber)}
header.top .snap.stale::after{content:" · older than usual";color:var(--amber)}
.boot{padding:60px 0 120px;max-width:40em}
.boot .q{font-family:var(--display);font-weight:400;font-size:34px;letter-spacing:-.02em;margin:0 0 10px}
.boot .note{font-size:16px}
.boot a{color:var(--ink)}
.lede{font-size:18.5px;max-width:52em}
.ctl{display:flex;gap:6px 22px;align-items:baseline;flex-wrap:wrap;font-family:var(--body);font-style:italic;color:var(--ink3);font-size:14.5px;margin-top:8px}
.ctl .grp{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.ctl .lnk{font:inherit;color:var(--ink3);padding:0 0 1px;border-bottom:1px solid transparent}
.ctl .lnk:hover{color:var(--ink)}
.ctl .lnk[aria-pressed="true"]{color:var(--ink);font-style:normal;border-bottom-color:var(--ink)}
.ctl .quiet{font-size:13px}
#best{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:12px}
.bc{border:1px solid var(--rule2);border-top:3px solid var(--rc);padding:14px 16px 14px;cursor:pointer;display:flex;flex-direction:column;background:#fff;min-height:190px}
.bc:hover{background:var(--paper2)}
.bc .k{font-size:13px;font-style:italic;color:var(--ink3);display:flex;justify-content:space-between}
.bc .k b{font-style:normal;font-weight:500;color:var(--rc)}
.bc .s{font-family:var(--display);font-weight:500;font-size:58px;line-height:.95;letter-spacing:-.04em;font-variant-numeric:oldstyle-nums;margin:10px 0 4px}
.bc .s small{font-family:var(--body);font-style:italic;font-size:13px;color:var(--ink3);letter-spacing:0;margin-left:6px}
.bc h4{margin:0;font-family:var(--display);font-weight:500;font-size:17.5px;line-height:1.15;letter-spacing:-.01em}
.bc .w{font-size:14.5px;color:var(--ink2);margin-top:5px}.bc .w b{color:var(--ink);font-weight:500}
.bc .f{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;font-size:12.5px;font-style:italic;color:var(--ink3);line-height:1.35}
.bc .f > span:first-child{flex:1;min-width:0}
.bc .f .spm{flex:none}
.bc .f .r{color:var(--red);font-style:normal}
.bc .f b.up{color:var(--green);font-style:normal;font-weight:500}.bc .f b.dn{color:var(--amber);font-style:normal;font-weight:500}
.plate{grid-column:1/-1;display:grid;grid-template-columns:1fr 292px;border:1px solid var(--rule2);background:#fff}
.plate .pmap{padding:8px 8px 6px;border-right:1px solid var(--rule2);min-width:0}
.plate svg{width:100%;height:auto;display:block}
.pidx{padding:10px 14px 8px;display:flex;flex-direction:column;justify-content:center}
.pidx .ph{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}
.pidx .rn{display:grid;grid-template-columns:22px 1fr 22px 30px;align-items:baseline;gap:6px;padding:2px 0;border:0;border-bottom:1px dotted var(--rule2);background:none;text-align:left;font:inherit;cursor:pointer;color:var(--ink)}
.pidx .rn:last-child{border-bottom:0}
.pidx .rn .m{font-family:var(--mono);font-size:9px;color:var(--rc);letter-spacing:.06em}
.pidx .rn .nm{font-family:var(--display);font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pidx .rn .nm .hoot{color:#b5533b;font-style:normal;font-family:var(--mono);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;margin-left:6px;vertical-align:1px}
.pidx .rn .rc{font-family:var(--mono);font-size:9px;color:var(--ink3);text-align:right}
.pidx .rn b{font-family:var(--display);font-size:14px;font-weight:600;text-align:right;font-variant-numeric:oldstyle-nums}
.pidx .rn:hover .nm{text-decoration:underline}
.plate .seg{cursor:pointer;transition:stroke-width .12s}
.plate .seg:hover,.plate .seg.hl{stroke-width:5}
.plate .hit{cursor:pointer}
.plate .rn{cursor:pointer}
.plate .rn:hover{text-decoration:underline}
.plate .pc{font-size:12px;font-style:italic;color:var(--ink3);text-align:center;margin-top:6px}
.band{margin-top:30px}
.bh{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--rc);color:var(--rc);padding-bottom:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase}
.bh .m{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;border:1.3px solid var(--rc);font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}
.bh .line{flex:1;font-family:var(--body);font-style:italic;font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--ink3)}
.bh .stat{font-family:var(--body);font-style:italic;font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--ink3)}
.bh .stat b{font-style:normal;color:var(--rc);font-weight:500}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:8px}
.sq{border:1px solid var(--rule2);border-top:3px solid var(--rc);padding:10px 11px 9px;display:flex;flex-direction:column;min-height:136px;cursor:pointer;background:#fff;position:relative}
.sq:hover{background:var(--paper2)}
.sq.far{opacity:.5}
.sq.empty{border:1px dotted var(--rule2);cursor:default;background:transparent}
.sq .n{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);display:flex;justify-content:space-between}
.sq .n i{font-style:normal;white-space:nowrap}
.sq .n i.hoot{color:var(--red);border:1px solid var(--red);padding:0 3px;letter-spacing:.1em}
.sq .n i.conf{display:none}
.sq h5{margin:5px 0 0;font-family:var(--display);font-weight:500;font-size:12.5px;line-height:1.2;letter-spacing:-.01em;min-height:30px}
.sq .sc{font-family:var(--display);font-weight:500;font-size:32px;line-height:1;letter-spacing:-.04em;font-variant-numeric:oldstyle-nums;margin-top:6px}
.sq .sc small{font-family:var(--body);font-style:italic;font-size:10.5px;color:var(--ink3);letter-spacing:0;margin-left:5px}
.sq .win{font-size:12px;font-style:italic;color:var(--ink2);margin-top:auto;padding-top:8px}
.sq svg.sp{width:100%;height:24px;display:none;margin-top:6px}
.sq .fx{display:none;justify-content:space-between;align-items:flex-end;padding-top:6px;font-family:var(--mono);font-size:8.5px;letter-spacing:.04em;color:var(--ink3)}
.sq .fx b{color:var(--ink);font-weight:500}
.page.full .sq svg.sp{display:block}.page.full .sq .fx{display:flex}.page.full .sq .n i.conf{display:inline}.page.full .sq .win{display:none}.page.full .sq{min-height:160px}
h3.sec .secr{display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.seg{display:inline-flex;border:1px solid var(--ink);border-radius:3px;overflow:hidden;vertical-align:middle}
.seg button{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;color:var(--ink2);background:#fff;border-left:1px solid var(--ink)}
.seg button:first-child{border-left:0}
.seg button:hover{background:var(--paper2)}
.seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
@media (max-width:640px){h3.sec{flex-wrap:wrap}h3.sec .secr{width:100%;justify-content:space-between}}
.coming{font-size:14px;font-style:italic;color:var(--ink3);line-height:1.6;margin-top:10px}
.foot{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:center;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}
.foot a{color:var(--ink3);text-decoration:none;border-bottom:1px solid var(--rule2)}
.foot a:hover{color:var(--ink)}
@media (max-width:1000px){#best{grid-template-columns:1fr 1fr}.plate{grid-column:1/-1;grid-template-columns:1fr 240px}.cal{grid-template-columns:repeat(4,1fr)}.sq.empty{display:none}header.top .dek{display:none}}
@media (max-width:640px){#best{grid-template-columns:1fr}.plate{grid-template-columns:1fr}.plate .pmap{border-right:0;border-bottom:1px solid var(--rule2)}.pidx{padding:8px 12px}.cal{grid-template-columns:repeat(2,1fr)}.bh .line{display:none}header.top .hl{display:none}}
/* phone pass, 0.7.1: the plate loses its river names (the index below carries them) and thickens its lines; band headers stack; tap targets grow; the data stamp stays visible */
@media (max-width:640px){
  .plate svg text.rn{display:none}
  .plate svg path.seg{stroke-width:3.4}
  .plate .pc{font-size:11.5px}
  header.top{flex-wrap:wrap;row-gap:2px;padding-top:10px;padding-bottom:8px}
  header.top .wordmark{flex-basis:100%;white-space:nowrap}
  header.top .spacer{display:none}
  header.top .snap{display:block;font-size:9px;letter-spacing:.02em;white-space:nowrap}
  .bh{flex-wrap:wrap;row-gap:4px;letter-spacing:.14em}
  .bh .stat{flex-basis:100%;padding-left:30px}
  .ctl{gap:8px 18px}
  .ctl .lnk{padding:10px 2px;margin:-6px 0}
  .seg button{padding:10px 12px;font-size:10px}
  .day{padding:10px 2px 12px}
  .pidx .rn{padding:5px 0}
}

/* compact rows for small screens (0.8): one line per reach, the tile grid hides */
.rows{display:none}
.row{display:grid;grid-template-columns:34px 1fr 44px;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dotted var(--rule2);cursor:pointer}
.row:last-child{border-bottom:0}
.row .rn{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--ink3)}
.row h5{margin:0;font-family:var(--display);font-weight:500;font-size:15px;letter-spacing:-.01em;line-height:1.15;color:var(--ink)}
.row .rs{font-family:var(--body);font-style:italic;font-size:12.5px;color:var(--ink3);margin-top:2px}
.row .rs .hoot{font-family:var(--mono);font-style:normal;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#b5533b;margin-right:6px}
.row .rs .num{display:none}
.page.full .row .rs .num{display:inline}
.row .rsc{font-family:var(--display);font-weight:500;font-size:24px;text-align:right;font-variant-numeric:oldstyle-nums;letter-spacing:-.02em}
.row.far{opacity:.55}
@media (max-width:640px){.cal{display:none}.rows{display:block;margin-top:4px}}

/* on phones, rivers wholly beyond the chosen ring fold to their header until tapped */
.bh .more{display:none}
@media (max-width:640px){
  .band.far .rows{display:none}
  .band.far.open .rows{display:block}
  .bh .more{display:inline-block;margin-left:10px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);background:none;border:1px solid var(--rule2);border-radius:2px;padding:4px 8px;cursor:pointer}
  .band.far .bh{opacity:.75}
}

.plate .town{pointer-events:none}
@media (max-width:640px){.plate .town{display:none}.plate svg circle[r="1.7"]{display:none}}

/* the wall (only when MTFISH_WALL is on): a quiet note where the best cards would be, band words where numbers would be */
.wall{grid-column:1/-1;border:1px solid var(--rule2);border-left:3px solid var(--ink);padding:14px 18px;background:#fff}
.wall .k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink3)}
.wall p{margin:6px 0 0;font-size:15.5px;line-height:1.5;color:var(--ink2);max-width:60em}
.wall a{color:var(--ink)}
.sq .sc .bw,.row .rsc .bw{font-family:var(--display);font-weight:500;font-size:18px;letter-spacing:-.01em}
.day b.bw{font-size:13px;letter-spacing:0;text-transform:none}
header.top #acct{margin-left:14px}
@media (max-width:640px){header.top #acct{display:inline-block;margin-left:0}}
.pidx .rn b.bw{font-size:11px;font-weight:500;letter-spacing:0}
