/* list112.com (x247 V-0903 029): the dark velvet design of V-0903 message 21, Ivo's layout B (the ranked list) by
   default and layout A (cards) as the other view, from one DOM. Fonts are this site's own (SIL Open Font License). */
@font-face{font-family:"Big Shoulders Display";font-weight:800;font-display:swap;src:url(/fonts/big-shoulders-display-800.woff2) format("woff2")}
@font-face{font-family:"Instrument Sans";font-weight:400 700;font-display:swap;src:url(/fonts/instrument-sans.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-500.woff2) format("woff2")}
:root{
  --night:#160d1c; --velvet:#211328; --velvet-2:#2b1934; --seam:#3a2646;
  --magenta:#cf46b9; --magenta-ink:#b0389c; --amber:#f3b545; --mint:#58d3a6; --lilac:#a08cad;
  --ink:#f7eef8; --muted:#c7b6d3;
  --display:"Big Shoulders Display","Arial Narrow",system-ui,sans-serif;
  --body:"Instrument Sans",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--night)}
body{margin:0;color:var(--ink);font:400 15px/1.45 var(--body);min-height:100vh;
  background:radial-gradient(120% 360px at 50% -80px,#3a1641 0%,rgba(22,13,28,0) 100%) no-repeat,var(--night)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;background:var(--amber);color:#2a1700;padding:8px 12px;border-radius:8px;z-index:9}
.skip:focus{left:8px}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px}

/* header */
.top{display:flex;align-items:center;justify-content:space-between;padding:14px 0 12px}
.mark{font:700 23px/1 var(--body);letter-spacing:-.02em}
.mark b{font:800 31px/1 var(--display);color:var(--magenta);margin-left:1px;letter-spacing:.01em}
.lang{display:flex;border:1px solid var(--seam);border-radius:999px;overflow:hidden;font:500 12px/1 var(--mono)}
.lang a{padding:7px 11px;color:var(--muted)}
.lang a[aria-current]{background:var(--velvet-2);color:var(--ink)}
.cats{display:flex;gap:6px;overflow-x:auto;margin:0 -16px;padding:4px 16px 2px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cats a{flex:none;padding:7px 13px;border-radius:999px;border:1px solid var(--seam);color:var(--muted);font-size:14px;font-weight:500}
.cats a[aria-current]{background:var(--magenta-ink);border-color:var(--magenta-ink);color:#fff;font-weight:600}

/* the page's heading and its sentence */
.head{padding:20px 0 4px}
h1{font:700 27px/1.1 var(--body);letter-spacing:-.025em;margin:0 0 8px}
.intro{margin:0 0 10px;color:var(--muted);max-width:44em}
.intro a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.week{margin:0;color:var(--muted);max-width:44em}
.week strong{font:800 21px/1 var(--display);color:var(--ink);letter-spacing:.02em}
.checked{color:var(--lilac);font-size:13px}

/* advertising slot */
.ads{display:grid;gap:8px;margin:16px 0 0}
.ad{display:flex;align-items:center;gap:12px;min-width:0;padding:11px 14px;border-radius:14px;border:1px solid #5d2a57;
  background:linear-gradient(100deg,rgba(207,70,185,.2),rgba(207,70,185,.04) 70%)}
.ad .tag{display:block;font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--magenta);margin-bottom:5px}
.ad .who-ad{font-weight:700}
.ad .what{display:block;color:var(--muted);font-size:13px}
.ad .btn{margin-left:auto}

/* order, view and kind */
.bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:18px 0 12px}
.sort{display:flex;gap:2px;background:var(--velvet);border:1px solid var(--seam);border-radius:10px;padding:3px}
.sort a{display:inline-flex;align-items:center;gap:6px;border-radius:7px;padding:7px 10px;font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}
.sort a[aria-current]{background:var(--velvet-2);color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--seam)}
.kinds{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.kinds button{background:none;border:1px solid var(--seam);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--muted);cursor:pointer}
.kinds button small{font:500 11px/1 var(--mono);color:var(--lilac);margin-left:3px}
.kinds button[aria-pressed=true]{background:var(--velvet-2);color:var(--ink);border-color:var(--lilac)}

/* shared pieces */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--magenta-ink);color:#fff;font-weight:600;
  font-size:14px;border:0;border-radius:10px;padding:9px 16px;cursor:pointer;white-space:nowrap}
.btn.ghost{background:none;box-shadow:inset 0 0 0 1px var(--seam);color:var(--muted);font-weight:500}
.dom{display:block;font:500 12.5px/1.25 var(--mono);color:var(--lilac);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}
.sc .star{color:var(--amber);font-size:14px}
.sc b{font:800 20px/1 var(--display);letter-spacing:.02em}
.sc small{color:var(--lilac);font-size:12px}
.stars{display:inline-flex;align-items:center}
.stars button{background:none;border:0;padding:4px 3px;font-size:20px;line-height:1;color:#5b4468;cursor:pointer}
.stars button.on{color:var(--amber)}
.said{display:block;color:var(--mint);font-size:12.5px}
.said:empty{display:none}
.empty{color:var(--muted);padding:20px 0}

/* B, the list (default) */
.sites .thead{display:none}
.sites.list{border-top:1px solid var(--seam)}
.list .site{display:grid;grid-template-columns:30px minmax(0,1fr) auto;
  grid-template-areas:"rank who sc" "rank facts facts" "rank act act" "rank said said";gap:6px 10px;align-items:center;
  padding:13px 2px;border-bottom:1px solid var(--seam)}
.rank{grid-area:rank;align-self:start;text-align:center;font:800 27px/1 var(--display);color:var(--ink)}
.rank.off{color:var(--seam)}
.who{grid-area:who;min-width:0}
.who h2{margin:0 0 2px;font:700 16px/1.2 var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.who h2 a:hover{color:var(--magenta)}
.facts{grid-area:facts;display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--muted);font-size:13px}
.facts small{color:var(--lilac)}
.facts .opens b{font-weight:600;color:var(--ink)}
.list .since{display:none}
.sc{grid-area:sc;justify-self:end}
.act{grid-area:act;display:flex;align-items:center;justify-content:space-between;gap:12px}
.site .said{grid-area:said}

/* A, the cards */
.sites.cards{display:grid;gap:12px}
.cards .site{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who sc" "facts facts" "act act" "said said";
  gap:14px;background:var(--velvet);border:1px solid var(--seam);border-radius:16px;padding:16px}
.cards .rank{position:absolute;top:-9px;left:14px;font:500 11px/1 var(--mono);background:var(--magenta-ink);color:#fff;padding:4px 7px;border-radius:999px}
.cards .rank::before{content:"#"}
.cards .rank.off{display:none}
.cards .who h2{font-size:18px}
.cards .sc{display:grid;grid-template-columns:auto auto;justify-items:end;align-items:baseline;column-gap:4px;row-gap:3px}
.cards .sc small{grid-column:1 / -1}
.cards .facts{display:grid;grid-template-columns:1fr auto;grid-template-areas:"opens kind" "opens since";align-items:end;
  padding:14px 0;border-top:1px solid var(--seam);border-bottom:1px solid var(--seam)}
.cards .opens{grid-area:opens}
.cards .opens b{display:block;font:800 42px/.82 var(--display);letter-spacing:.01em}
.cards .opens small{display:block;margin-top:7px;font-size:12px}
.cards .kind{grid-area:kind;justify-self:end}
.cards .since{grid-area:since;justify-self:end}
.cards .act .btn{flex:1}

.prose{max-width:40em}
.foot{display:grid;gap:8px;max-width:50em;margin:30px 0 34px;color:var(--lilac);font-size:13px;line-height:1.55}
.foot p{margin:0}
.foot a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}

@media (max-width:719px){
  .ads{grid-auto-flow:column;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;margin:16px -16px 0;padding:0 16px;scrollbar-width:none}
  .ads::-webkit-scrollbar{display:none}
  .ad{scroll-snap-align:center}
}
@media (max-width:519px){
  .views a{gap:0;padding:7px 9px}
  .views a span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media (min-width:720px){
  .ads{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
  .sites.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  h1{font-size:34px}
}
@media (min-width:1040px){
  .sites.cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:860px){
  .list .thead,.list .site{grid-template-columns:44px minmax(0,1.8fr) minmax(90px,.5fr) 92px 150px 210px;
    grid-template-areas:"rank who kind opens sc act" "rank said said said said said";padding-left:4px;padding-right:4px}
  .list .thead{display:grid;gap:10px;padding:8px 4px;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--lilac);
    border-bottom:1px solid var(--seam)}
  .list .site{gap:4px 10px;row-gap:2px}
  .list .rank{align-self:center}
  .list .facts{display:contents}
  .list .kind{grid-area:kind;color:var(--muted)}
  .list .since{display:none}
  .list .sc{justify-self:start}
  .list .opens{grid-area:opens}
  .list .facts small{display:none}
  .list .act{justify-content:flex-end}
}
@media (prefers-reduced-motion:no-preference){
  .btn,.sort a,.cats a,.stars button{transition:filter .15s,background-color .15s,color .15s}
  .btn:hover{filter:brightness(1.12)}
}

/* a site's page: the site in a frame under one bar */
.framed{height:100%;margin:0;overflow:hidden}
.framed body{height:100%;display:flex;flex-direction:column;min-height:0;background:var(--night)}
.frame-bar{flex:none;display:flex;align-items:center;gap:12px;height:48px;padding:0 12px;background:var(--velvet);border-bottom:1px solid var(--seam)}
.frame-bar .mark{font-size:18px}
.frame-bar .mark b{font-size:24px}
.frame-bar .back{color:var(--muted);font-size:14px;white-space:nowrap}
.frame-bar .name{min-width:0;flex:1;margin:0;font:600 15px/1.2 var(--body);letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frame-bar .name .dom{display:inline;margin-left:8px}
.frame-bar .btn{padding:7px 12px}
.framed iframe{flex:1;width:100%;border:0;display:block;background:#fff}
.refused{flex:1;display:grid;place-content:center;justify-items:center;gap:12px;padding:24px;text-align:center}
.refused h1{margin:0}
.refused p{margin:0;color:var(--muted);max-width:30em}
@media (max-width:560px){
  .frame-bar .name .dom,.frame-bar .back span{display:none}
}
