Rule34.Paheal.net – Dark Enhanced [Ath]

Dark theme for Paheal Rule 34 (Rule34.Paheal.net). All pages fully redesigned. Highly customizable: choosing controls below thumbnail, fonts, colors etc.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

/* ==UserStyle==
@name           Rule34.Paheal.net – Dark Enhanced [Ath]
@namespace      athari
@version        1.0.0
@description    Dark theme for Paheal Rule 34 (Rule34.Paheal.net). All pages fully redesigned. Highly customizable: choosing controls below thumbnail, fonts, colors etc.
@author         Athari (https://github.com/Athari)
@homepageURL    https://github.com/Athari/AthariUserCSS
@supportURL     https://github.com/Athari/AthariUserCSS/issues
@license        MIT
@preprocessor   default

@var            select   ath-thumb-image-fit      "Thumbnail: fit image"            ["contain:Letterboxed", "cover:Clip to square", "fill:Stretch to square"]
@var            checkbox ath-thumb-show-type      "Thumbnail: show content type"    1
@var            checkbox ath-thumb-show-download  "Thumbnail: show download button" 1
@var            checkbox ath-thumb-show-tags      "Thumbnail: Tags: Show"           0
@var            range    ath-thumb-tags-max-lines "Thumbnail: Tags: Max lines"      [3, 1, 8, 1]
@var            select   ath-color-scheme         "Controls color scheme"           ["light:Light", "dark:Dark*"]
@var            range    ath-sidebar-width        "Sidebar: Width"                  [250, 200, 400, 10, 'px']
@var            text     ath-font-main-family     "Font: Main: Family"              "Segoe UI, Open Sans, Ubuntu, Arial, sans-serif"
@var            number   ath-font-main-size       "Font: Main: Size"                [15, 'px']
@var            text     ath-font-mono-family     "Font: Code: Monospace"           "Cascadia Code, Consolas, monospace"
@var            text     ath-font-small-family    "Font: Small: Family"             "Montserrat, Ubuntu, Segoe UI, Arial, sans-serif"
@var            number   ath-font-small-size      "Font: Small: Size"               [10, 'px']

@var            range    l "Lightness base"     [1.2, -2.0, 2.0, 0.02]
@var            range    m "Lightness contrast" [-1.1, -2.0, 2.0, 0.02]
@var            range    c "Chroma base"        [0.0, 0.0, 0.37, 0.01]
@var            range    d "Chroma contrast"    [0.6, -2.0, 2.0, 0.02]
@var            range    h "Hue base"           [0, 0, 360, 2]
@var            range    i "Hue contrast"       [1.0, -2.0, 2.0, 0.05]
@var            checkbox y "Invert images"      0
==/UserStyle== */

@-moz-document domain("rule34.paheal.net") {
  /*@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,600;1,400;1,600&display=swap');*/
  @font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/montserrat/v29/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCtr6Hw5aXo.woff2) format('woff2'); /* latin-1 */
  }
  /*
   * generated
   * formula: dark-full
   * site-name: rule34.paheal.net
   * file-name: rule34v2.css
   * url: https://rule34.paheal.net/data/cache/style/rule34v2.1739310587.b3d6ca90457f42ae26e6de657c233f7f.css
   * file-name: menuh.css
   * url: https://rule34.paheal.net/themes/rule34v2/menuh.css
   */
  :root {
    /* color #ace4a3 n=12 rgb(172, 228, 163) oklch(0.86 0.11 141.12) */
    --c-ace4a3: oklch(from #ace4a3 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #7eb977 n=10 rgb(126, 185, 119) oklch(0.73 0.11 141.86) */
    --c-7eb977: oklch(from #7eb977 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color black n=8 rgb(0, 0, 0) oklch(0 0 0) */
    --c-black: oklch(from #000000 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color red n=6 rgb(255, 0, 0) oklch(0.63 0.26 29.23) */
    --c-red: oklch(from #ff0000 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #000099 n=5 rgb(0, 0, 153) oklch(0.31 0.21 264.05) */
    --c-000099: oklch(from #000099 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #ccc n=3 rgb(204, 204, 204) oklch(0.85 0 164.06) */
    --c-ccc: oklch(from #ccc calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color blue n=2 rgb(0, 0, 255) oklch(0.45 0.31 264.05) */
    --c-blue: oklch(from #0000ff calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #882 n=2 rgb(136, 136, 34) oklch(0.61 0.12 109.48) */
    --c-882: oklch(from #882 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #9cd493 n=2 rgb(156, 212, 147) oklch(0.81 0.11 141.10) */
    --c-9cd493: oklch(from #9cd493 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #ddd n=2 rgb(221, 221, 221) oklch(0.90 0 156.04) */
    --c-ddd: oklch(from #ddd calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #dedede n=2 rgb(222, 222, 222) oklch(0.90 0 180) */
    --c-dedede: oklch(from #dedede calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #ff7 n=2 rgb(255, 255, 119) oklch(0.97 0.16 109.00) */
    --c-ff7: oklch(from #ff7 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #555 n=2 rgb(85, 85, 85) oklch(0.45 0 169.69) */
    --c-555: oklch(from #555 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color green n=1 rgb(0, 128, 0) oklch(0.52 0.18 142.50) */
    --c-green: oklch(from green calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color rosybrown n=1 rgb(188, 143, 143) oklch(0.69 0.05 18.57) */
    --c-rosybrown: oklch(from #bc8f8f calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #cc00cc n=1 rgb(204, 0, 204) oklch(0.59 0.27 328.36) */
    --c-cc00cc: oklch(from #cc00cc calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color white n=1 rgb(255, 255, 255) oklch(1 0 180) */
    --c-white: oklch(from #fff calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    /* color #444 n=1 rgb(68, 68, 68) oklch(0.39 0 180) */
    --c-444: oklch(from #444 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
  }
  .admin {
    background-color: var(--c-green);
  }
  .admin.protected {
    background-color: var(--c-red);
  }
  .bbcode PRE.code {
    background-color: var(--c-dedede);
  }
  .bbcode BLOCKQUOTE {
    border: 1px solid var(--c-black);
    background-color: var(--c-ddd);
  }
  .comment .info {
    background-color: var(--c-ddd);
    border: 1px solid var(--c-ccc);
    box-shadow: 0 0 4px var(--c-black);
  }
  .command_example pre {
    border: dashed 2px var(--c-black);
  }
  #flash {
    background-color: var(--c-ff7);
    color: var(--c-444);
    border: 1px solid var(--c-882);
  }
  .autocomplete_completions {
    border: 1px solid var(--c-ccc);
    color: var(--c-black);
    background-color: var(--c-white);
  }
  .autocomplete_completions .selected {
    background-color: var(--c-ccc);
  }
  .bulk_selected {
    outline: 3px solid var(--c-blue);
  }
  .tnc_bg {
    background-color: var(--c-ace4a3);
  }
  .tnc {
    background-color: var(--c-ace4a3);
    border: 1px solid var(--c-7eb977);
  }
  :root {
    --page: var(--c-ace4a3);
    --text: var(--c-black);
    --block: var(--c-ace4a3);
    --block-border: var(--c-7eb977);
  }
  #header {
    border-bottom: 1px solid var(--c-7eb977);
    background-color: var(--c-ace4a3);
  }
  H1 A {
    color: var(--c-black);
  }
  #flash {
    background-color: var(--c-ff7);
    border: 1px solid var(--c-882);
  }
  TABLE.zebra {
    background-color: var(--c-ace4a3);
    border: 1px solid var(--c-7eb977);
  }
  TABLE.zebra TD {
    border-top: 1px solid var(--c-7eb977);
  }
  TABLE.zebra TR:nth-child(odd) {
    background-color: var(--c-9cd493);
  }
  TABLE.zebra TR:nth-child(even) {
    background-color: var(--c-ace4a3);
  }
  FOOTER {
    border-top: 1px solid var(--c-7eb977);
    background-color: var(--c-ace4a3);
  }
  A {
    color: var(--c-000099);
  }
  A:hover {
    color: var(--c-000099);
  }
  A:visited {
    color: var(--c-000099);
  }
  A:active {
    color: var(--c-000099);
  }
  CODE {
    background-color: var(--c-dedede);
  }
  .comment .info {
    background-color: var(--c-ace4a3);
    border: 1px solid var(--c-7eb977);
  }
  SECTION > .blockbody,
  .comment,
  .setupblock {
    background-color: var(--c-ace4a3);
    border: 1px solid var(--c-7eb977);
  }
  SECTION > H3 {
    background-color: var(--c-9cd493);
    border: 1px solid var(--c-7eb977);
  }
  .thumb IMG {
    border: 1px solid var(--c-7eb977);
    background-color: var(--c-ace4a3);
  }
  .unread {
    color: var(--c-red);
  }
  [data-tags~="ai-generated"] > A > IMG {
    background-color: var(--c-rosybrown);
  }
  [data-tags~="animated"] > A > IMG {
    background-color: var(--c-cc00cc);
  }
  [data-ext="mp4"] > A > IMG,
  [data-ext="webm"] > A > IMG {
    background-color: var(--c-blue);
  }
  @media (max-width: 750px) {
    #nav-toggle A {
      border: 1px solid var(--c-black);
    }
  }
  a:link.menu {
    color: var(--c-red);
  }
  a:visited.menu {
    color: var(--c-red);
  }
  a:hover.menu {
    color: var(--c-red);
  }
  a:active.menu {
    color: var(--c-red);
  }
  #menuh a.sub_option {
    border: 1px solid var(--c-555);
  }
  #menuh a {
    background-color: var(--c-ace4a3);
  }
  #menuh a,
  #menuh a:visited {
    color: var(--c-000099);
  }
  #menuh a:hover {
    color: var(--c-black);
  }
  #menuh a.parent,
  #menuh a.parent:hover {
    border: 1px solid var(--c-555);
  }

  /* layout */

  /* crap */
  #Friends_of_Pahealleft,
  section[id$=main]:has( > div.blockbody > span[style*="font-size"] > a[href$="/bad_ads"]),
  section[id$=main]:has( > div.blockbody > div[align="center"] > script[src$="/ad-provider.js"]),
  section[id$=main]:has( > div.blockbody > div[style] > script[src$="/ad-provider.js"]),
  section[id$=main]:has( > div.blockbody > div[style] > a[href$="/wiki/rules"]) {
    display: none !important;
  }

  nav,
  #ImageInfo,
  #comment-list-image,
  #header {
    table, thead, tbody, tfoot, tr, td, th {
      display: contents;
    }
  }
  table#header {
    display: contents;
  }

  body {
    display: grid;
    grid-template-areas:
      "logo    menu     upload  "
      "logo    login    upload  "
      "logo    search   find    "
      "sidebar image    image   "
      "sidebar comments comments"
      "footer  footer   footer  ";
    grid-template-columns: var(--ath-sidebar-width) 1fr auto;
    grid-template-rows: auto auto auto 1fr auto auto;
  }

  #big-logo a {
    grid-area: logo;
    height: 104px !important;
  }
  .headbox input[name="search"] {
    grid-area: search;
    width: auto !important;
    margin: 0 0 0 10px !important;
    border-radius: 10px 0 0 10px !important;
  }
  .headbox input#submit:not(#\0) {
    grid-area: find;
    width: auto !important;
    margin: 0 10px 0 0 !important;
    border-left: none !important;
    border-radius: 0 10px 10px 0 !important;
  }
  #Uploadhead {
    grid-area: upload;
    margin: 10px 10px 0 0;
    border-radius: 10px !important;
    h3 {
      display: none;
    }
    .blockbody {
      display: contents;
      a:not(#\0) {
        text-decoration: none;
        --ph: 15px;
        --pt: 5px;
        --pb: 10px;
        border-radius: 10px !important;
      }
    }
  }
  #mini-logo,
  #nav-toggle {
    display: none !important;
  }
  #Loginhead,
  #UserBlockhead {
    grid-area: login;
    display: flex;
    flex-flow: row;
    vertical-align: baseline;
    gap: 15px;
    h3 {
      display: contents;
    }
    .blockbody {
      display: contents;
      form {
        display: flex;
        flex-flow: row;
        align-items: baseline;
        gap: 15px;
        margin: auto;
      }
      br {
        display: none;
      }
    }
  }
  #Loginhead h3 {
    display: none;
  }
  .headcol:has(#UserBlockhead) {
    grid-area: login;
    flex-flow: row;
    vertical-align: baseline;
    display: flex !important;
    width: auto !important;
    margin: auto !important;
    padding: 4px 10px !important;
    background: var(--block) !important;
    border: solid 1px var(--block-border) !important;
    border-radius: 10px;
  }
  nav {
    grid-area: sidebar;
    float: none !important;
    width: auto !important;
    margin: 0 !important;
  }
  article {
    grid-area: image;
    height: auto !important;
    margin: 0 !important;
  }
  footer {
    grid-area: footer;
  }

  #comment-list-image {
    grid-area: comments;
    max-width: 1000px;
    margin-inline: auto;
    .comment:not(.comment_add) {
      display: grid;
      grid-template-areas:
        "avatar name meta "
        "avatar text reply";
      grid-template-columns: minmax(calc(80px + 15px), max-content) 1fr auto;
      grid-template-rows: calc(1rem + 10px) 1fr;
      padding: 10px;
      border-radius: 10px;
      font-size: 0;
      * {
        z-index: 0;
      }
      .username,
      .bbcode,
      .info :is(img, time, a) {
        font-size: 1rem;
      }
      .username {
        grid-area: name;
      }
      .bbcode {
        grid-area: text;
      }
      .info {
        grid-area: 1 / 1 / span all / span all;
        position: static;
        visibility: visible;
        display: grid;
        grid-template-columns: subgrid;
        grid-template-rows: subgrid;
        box-shadow: none;
        border: none;
        padding: 0;
        img {
          grid-area: avatar;
        }
        time {
          grid-area: meta;
        }
        a[href*=replyTo] {
          grid-area: reply;
          align-self: end;
          justify-self: end;
          padding-inline: 30px !important;
          font-weight: normal;
          text-decoration: none;
        }
        br {
          display: none;
        }
      }
    }
    .comment_add {
      border-radius: 10px;
      form {
        display: flex !important;
        flex-flow: column;
        gap: 10px;
      }
      textarea {
        box-sizing: content-box;
        min-height: 2lh;
        max-height: 80vh;
        width: auto !important;
        field-sizing: content;
        resize: none;
      }
      br {
        display: none;
      }
    }
  }
  #comment-list-recent {
    .comment {
      margin: 0;
      border-top-width: 0;
    }
    .more {
      display: block;
      padding: 5px;
      border: solid 1px var(--block-border);
      border-top-width: 0;
      background: var(--block);
      border-radius: 0 0 10px 10px !important;
    }
  }

  #menuh-container {
    grid-area: menu;
    width: auto !important;
  }
  #menuh {
    width: auto !important;
    display: flex !important;
    flex-flow: row wrap !important;
    gap: 10px;
    float: none !important;
    a[target="_top"], /* "Web Chat" (dead link), "Live webcams!" (ad) */
    a[href^="mailto:dmca"] /* "DMCA/Abuse" */ { 
      background: red !important;
      display: none !important;
    }
    a {
      background: none !important;
    }
    a.top_parent,
    ul:has(> li > a[target="_top"] b),
    li:has(> a.parent[target="_top"]),
    li:has(> a.parent[href="#"]) {
      display: none !important;
    }
    ul {
      position: static !important;
      width: auto !important;
      display: flex !important;
      flex-flow: row !important;
      gap: 10px;
      float: none !important;
      margin: 0 !important;
      padding: 0 !important;
      li {
        a {
          border: none !important;
        }
      }
    }
    > ul {
      padding: 4px 10px !important;
      background: var(--block);
      border: solid 1px var(--block-border);
      border-radius: 10px;
    }
  }

  #Popular_Tagsleft,
  #Refine_Searchleft,
  #Tagsleft {
    table.tag_list {
      display: grid;
      grid-template-columns: auto 1fr auto;
      gap: 2px 10px;
      tr {
        display: grid;
        grid-area: auto / 1 / span 1 / span all;
        grid-template-columns: subgrid;
      }
      th, td {
        display: block;
      }
      colgroup {
        display: none;
      }
      a {
        font-weight: normal;
      }
      .tag_name_cell {
        text-align: left;
      }
      .tag_count_cell {
        text-align: right;
      }
      .tag_count::before,
      .tag_count::after {
        content: none !important;
      }
    }
  }

  #Navigationleft {
    position: relative;
    z-index: 100;
    a {
      display: inline-block !important;
      font-weight: normal !important;
      height: auto !important;
      vertical-align: baseline !important;
    }
    input[type=search] {
      anchor-name: --ath-anchor-search-nav;
    }
    .autocomplete_completions {
      display: block !important;
      position-anchor: --ath-anchor-search-nav;
      inset: anchor(bottom) auto auto anchor(left) !important;
    }
  }
  .autocomplete_completions {
    min-width: 200px !important;
    max-width: 400px !important;
  }

  form[action="/numeric_score_vote"] {
    position: relative;
    box-sizing: border-box;
    display: inline-block;
    width: 40px;
    margin: 0 3px !important;
    &::after {
      position: absolute;
      inset: 0 0 0 0;
      font-size: 15px;
      line-height: 22px;
      pointer-events: none;
    }
    &:has(input[name="vote"][value="1"])::after {
      content: "👍";
    }
    &:has(input[name="vote"][value="0"])::after {
      content: "⭕";
    }
    &:has(input[name="vote"][value="-1"])::after {
      content: "👎";
    }
    &:has(input[type=submit]:active)::after {
      margin: 1px -1px -1px 1px;
    }
    input[type=submit]:not(#\0) {
      color: #0000 !important;
      padding: 4px 10px !important;
      &:active {
        padding: 4px 10px !important;
      }
    }
    + form[action="/numeric_score_vote"] {
      margin-left: 5px;
    }
  }

  .shm-image-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, calc(var(--thumb-width) + 20px));
    align-items: center;
    justify-content: center;
    gap: 4px;
    .shm-thumb {
      grid-row-end: span 3;
      display: grid !important;
      grid-template-columns: subgrid;
      grid-template-rows: subgrid;
      margin: 0 10px 10px 0;
      .shm-thumb-link {
        display: contents;
        img {
          grid-row: 1;
          display: block;
          margin: auto;
          object-fit: var(--ath-thumb-image-fit);
          @container not style(--ath-thumb-image-fit: contain) {
            width: var(--thumb-width);
            height: var(--thumb-height);
          }
        }
        @container style(--ath-thumb-show-tags: 1) {
          &::after {
            grid-row: 2;
            content: " ";
            display: block;
            background: var(--block);
            border: solid 1px var(--block-border);
            border-radius: 4px;
          }
        }
      }
      @container style(--ath-thumb-show-tags: 1) {
        &::after {
          --ath-thumb-tags-max-lines: 4;
          grid-row: 2;
          content: attr(data-tags);
          display: block;
          display: -webkit-box;
          display: box;
          max-height: var(--ath-thumb-tags-max-lines) * 1lh;
          margin: auto;
          padding: 2px 4px 5px;
          overflow: hidden;
          text-overflow: ellipsis;
          -webkit-line-clamp: var(--ath-thumb-tags-max-lines);
          line-clamp: var(--ath-thumb-tags-max-lines);
          -webkit-box-orient: vertical;
          text-align: center;
          font-family: var(--ath-font-small-family);
          font-size: var(--ath-font-small-size);
          line-height: 1.1;
        }
      }
      @container style(--ath-thumb-show-download: 1) {
        a:not([class]) {
          --pt: 0px;
          --pb: 2px;
          --ph: 8px;
          grid-row: 3;
          font-size: 0;
          font-weight: normal;
          margin: 0 0 0 auto;
          &::before {
            content: "Download";
            font-size: 1rem;
          }
        }
      }
      @container style(--ath-thumb-show-type: 1) {
        &::before {
          grid-row: 3;
          content: attr(data-ext);
          margin: 0 auto auto 0;
          padding: 0px 5px 1px;
          background: var(--block);
          border: solid 1px var(--block-border);
          border-radius: 4px;
          text-transform: uppercase;
          z-index: 1;
        }
      }
      @container style(--ath-thumb-show-download: 0) {
        a:not([class]) {
          display: none;
        }
        &::before {
          margin-left: auto;
        }
      }
      @container style(--ath-thumb-show-type: 0) {
        a:not([class]) {
          margin-right: auto;
        }
      }
      br {
        display: none;
      }
    }
  }

  #paginator {
    font-size: 0;
    .blockbody {
      a, b {
        box-sizing: border-box;
        font-size: 1rem;
        font-weight: normal;
        text-decoration: none;
      }
      a {
        --pv: 5px;
        --ph: 20px;
        display: inline-block;
        min-width: 55px;
        margin: 5px 0;
        border-radius: 10px 0 0 10px !important;
        &:active {
          z-index: 100;
          margin-top: 0 !important; /* workaround for resize bug */
        }
      }
      :is(a, b) + a {
        border-radius: 0 !important;
      }
      a:has(+ br),
      a:not(:has(+ :is(a, b))) {
        border-radius: 0 10px 10px 0 !important;
      }
      b a {
        border: none !important;
        background: none !important;
        font-weight: bold;
        &:is(:hover, :active, :focus) {
          border: none !important;
          background: none !important;
          outline: none !important;
        }
      }
    }
  }

  section#ImageInfo {
    justify-self: center;
  }
  .image_info {
    --row-gap: 5px;
    --column-gap: 15px;
    width: auto !important;
    max-width: none !important;
    margin-left: var(--column-gap);
    display: grid !important;
    grid-template-areas:
      "user-h user   avatar"
      ".      info   avatar"
      ".      lock   avatar"
      "tags-h tags   tags  "
      "link-h link   link  "
      ".      submit submit"
    ;
    grid-template-columns: auto minmax(500px, auto) 80px;
    justify-items: start;
    justify-content: center;
    gap: var(--row-gap) var(--column-gap);
    tr {
      grid-area: 1 / 1 / span all / span all;
      display: grid !important;
      grid-template-columns: subgrid;
      grid-template-rows: subgrid;
      pointer-events: none;
      * {
        pointer-events: all;
      }
    }
    th, a {
      width: auto !important;
      max-width: none !important;
      padding: 0 !important;
      font-weight: normal !important;
    }
    div[style*="overflow: hidden"] {
      display: contents !important;
    }
    [data-row="Uploader"] {
      font-size: 0;
      th, td > * {
        font-size: 1rem;
      }
      .avatar {
        grid-area: avatar;
        background-color: #0005 !important;
        filter: drop-shadow(1px 1px 3px #000);
      }
      th {
        grid-area: user-h;
        display: block !important;
        &::after {
          content: ":";
        }
      }
      td:has(.username) {
        grid-area: user;
        display: block !important;
        time::before {
          content: " on ";
        }
      }
    }
    [data-row="Info"] {
      th {
        display: none !important;
      }
      td {
        grid-area: info;
        display: block !important;
      }
    }
    [data-row="Locked"] {
      grid-area: lock;
      display: block !important;
      th {
        &::after {
          content: ": ";
        }
      }
    }
    [data-row="Tags"] {
      th a {
        grid-area: tags-h;
        &::after {
          content: ":";
        }
      }
      td {
        grid-area: tags;
        display: block !important;
        span {
          display: block !important;
        }
      }
      textarea {
        display: block !important;
        height: auto !important;
        min-height: 1rem !important;
        margin: var(--row-gap) 0 0 0;
        field-sizing: content;
        resize: none;
      }
    }
    [data-row="Source Link"] {
      th a {
        grid-area: link-h;
        &::after {
          content: ":";
        }
      }
      td {
        grid-area: link;
        display: block !important;
        span {
          display: block !important;
        }
      }
      input {
        display: block !important;
        margin: var(--row-gap) 0 0 0;
      }
    }
    tr:not([data-row]):has(.edit[type="submit"]) {
      td {
        grid-area: submit;
        display: block !important;
        justify-self: center;
        input:not(#\0) {
          margin: 0;
          padding-inline: 40px !important;
        }
      }
    }
    tr:not([data-row]):not(:has(.edit[type="submit"])) /* unknown rows */ {
      display: none !important;
    }
  }

  #Tagsmain {
    .blockbody {
      text-align: left;
      * {
        font-weight: normal;
      }
      p {
        margin: 0;
        font-family: var(--ath-font-mono-family);
        a {
          font-family: var(--ath-font-main-family);
          text-align: left;
          margin-left: 10px;
        }
        a::before, a::after {
          white-space: pre;
        }
        br + a {
          margin-left: 0;
          &::before {
            content: ":  ";
            color: var(--text);
            text-decoration-color: var(--block);
          }
        }
        a:has(+ a)::after {
          content: ",";
        }
        br {
          display: none;
        }
      }
    }
  }

  /* color fixes */
  :root {
    color-scheme: var(--ath-color-scheme);
    --c-000099-t: oklch(0.77 0.12 110);
    --c-000099-x: oklch(from var(--c-000099-t) calc((l - var(--l)) / var(--m)) calc((c - var(--c)) / var(--d)) calc((h - var(--h)) / var(--i)));
    --c-000099: oklch(from var(--c-000099-x) calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    --c-black-t: oklch(1.0 0.03 110);
    --c-black-x: oklch(from var(--c-black-t) calc((l - var(--l)) / var(--m)) calc((c - var(--c)) / var(--d)) calc((h - var(--h)) / var(--i)));
    --c-black: oklch(from var(--c-black-x) calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h));
    --text: var(--c-black);
    font-size: var(--ath-font-main-size);
    font-family: var(--ath-font-main-family);
  }
  body {
    --gradient-main: oklch(from var(--block) calc(l * (1 + var(--m) * 0.3)) c h);
    --gradient-line: oklch(from var(--block-border) calc(l * (1 + var(--m) * 0.3)) c h);
    color: var(--text);
    /*background-image: repeating-linear-gradient(
      calc(-1turn / 8),
      var(--gradient-main) calc(sqrt(2) / 2 * -1 * 1px),
      var(--gradient-main) calc(sqrt(2) / 2 * 3 * 1px),
      var(--gradient-line) calc(sqrt(2) / 2 * 3 * 1px),
      var(--gradient-line) calc(sqrt(2) / 2 * 4 * 1px)
    );*/
    background: oklch(from var(--block) calc(l * (1 + var(--m) * 0.25)) c h);
  }

  hr {
    border-color: var(--block-border);
  }
  blockquote {
    border-color: oklch(from #8888 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h)) !important;
    background-color: oklch(from #ddd8 calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h)) !important;
    margin: 0.5em 0 0.5em 2em !important;
  }

  h3 {
    border-radius: 8px !important;
    margin: 10px !important;
    /*box-shadow: 1px 1px 3px 3px #000;*/
    filter: drop-shadow(1px 1px 3px #000);
    &:has(+ .blockbody:not([style*="display: none"])) {
      border-radius: 8px 8px 0 0 !important;
      margin-bottom: 0 !important;
    }
  }
  .blockbody {
    border-radius: 8px !important;
    margin: 10px !important;
    /*box-shadow: 1px 1px 3px 3px #000;*/
    filter: drop-shadow(1px 1px 3px #000);
    h3 + &:not([style*="display: none"]) {
      border-radius: 0 0 8px 8px !important;
      border-top-width: 0 !important;
      margin-top: 0 !important;
    }
  }

  input:is([type=text], [type=file], [type=search], [type=password]):not(#\0),
  select:not(#\0),
  textarea:not(#\0) {
    padding: 0.3rem 0.6rem;
    border: solid 1px var(--block-border);
    border-radius: 4px;
    color: var(--text);
    accent-color: var(--block-border);
    background-color: oklch(from var(--block) calc(l * (1 + var(--m) * 0.15)) c h);
    background-image:
      linear-gradient(0deg, #0000 0%, #0003 90%, #0004 100%),
      linear-gradient(0deg, #fff0 0%, #fff1 10%, #fff0 80%)
      !important;
    border-color: oklch(from var(--block-border) calc(l * (1 + var(--m) * 0.1)) c h);
    font: 1rem var(--ath-font-main-family);
    &[type=file] {
      box-sizing: border-box;
      padding: 0;
      border-radius: 5px 4px 4px 5px;
    }
    &:is(:focus) {
      outline: solid 2px oklch(from var(--block-border) calc(l * (1 + var(--m) * -0.4)) c h);
      filter: drop-shadow(0 0 0 2px #000);
    }
    &:is(:hover) {
      background-color: oklch(from var(--block) calc(l * (1 + var(--m) * 0.4)) c h);
    }
    &:is(:focus, :active) {
      background-color: oklch(from var(--block) calc(l * (1 + var(--m) * 0.4)) c h);
    }
    &::placeholder {
      color: oklch(from var(--text) calc(l * (1 + var(--m) * 0.4)) c h);
    }
  }
  select option:hover,
  select option:checked {
    background-color: var(--page) !important;
  }

  #Navigationleft a,
  #paginator a,
  .comment .info a,
  .shm-thumb a:not([class]),
  input[type=file]::-webkit-file-upload-button,
  a[href="/upload"]:not(#\0),
  input:is([type=button], [type=submit]):not(#\0),
  button:not(#\0) {
    --pv: 0.3rem;
    --ph: 0.6rem;
    --pt: var(--pv);
    --pr: var(--ph);
    --pb: var(--pv);
    --pl: var(--ph);
    padding: var(--pt) var(--pr) var(--pb) var(--pl) !important;
    border: solid 1px var(--block-border) !important;
    border-radius: 4px !important;
    cursor: pointer;
    color: var(--text);
    accent-color: var(--block-border);
    background-color: oklch(from var(--block) calc(l * (1 + var(--m) * -0.4)) c h) !important;
    background-image:
      linear-gradient(180deg, #0000 0%, #0003 90%, #0004 100%),
      linear-gradient(180deg, #fff0 0%, #fff1 20%, #fff0 80%)
      !important;
    border-color: oklch(from var(--block-border) calc(l * (1 + var(--m) * -0.2)) c h) !important;
    text-decoration: none;
    filter: drop-shadow(0 0 1px #000);
    &:is(:focus) {
      outline: solid 2px oklch(from var(--block-border) calc(l * (1 + var(--m) * -0.4)) c h);
    }
    &:is(:hover) {
      background-color: oklch(from var(--block) calc(l * (1 + var(--m) * -0.6)) c h) !important;
    }
    &:is(:focus, :active) {
      background-color: oklch(from var(--block) calc(l * (1 + var(--m) * -0.6)) c h) !important;
    }
    &:is(:active) {
      padding: calc(var(--pt) + 1px) calc(var(--pr) - 1px) calc(var(--pb) - 1px) calc(var(--pl) + 1px) !important;
      background-image:
        linear-gradient(0deg, #0000 0%, #0003 90%, #0004 100%),
        linear-gradient(0deg, #fff0 0%, #fff1 20%, #fff0 80%)
        !important;
    }
  }

  input:not([type=hidden]) + input,
  form + form {
    display: block;
    margin-top: 10px;
  }

  [style*="border: 1px solid #888; height: 22px; border-radius: 2px; background: #EEE;"] {
    height: auto !important;
  }
  [style*="text-align: center; font-weight: bold; font-size: 14px; color: red"] {
    color: oklch(from red calc(var(--l) + var(--m) * l) calc(var(--c) + var(--d) * c) calc(var(--h) + var(--i) * h)) !important;
  }
  #menuh a.sub_option, #menuh a.parent, #menuh a.parent:hover {
    border-color: var(--block-border);
  }

  @container style(--y: 1) {
    img {
      filter:
        hue-rotate(calc(var(--h) * 1deg))
        invert(calc(0.5 - sign(var(--m)) / 2))
        contrast(calc(1 + max(0, sign(var(--m))) * (var(--m) - 1)))
        contrast(calc(1 - max(0, 0 - sign(var(--m))) * (var(--m) + 1)))
        brightness(calc(pow(2, var(--l))))
      ;
    }
  }
}

@-moz-document url("https://rule34.paheal.net/help/search") {
  article {
    display: flex !important;
    flex-flow: row wrap;
    .blockbody {
      flex: 100%;
      padding: 10px 20px;
      column-width: 600px;
      column-gap: 40px;
      text-align: left;
      * {
        break-inside: avoid;
      }
      h3, p {
        margin: 0.5em 0;
        break-after: avoid;
      }
      .command_example {
        display: flex !important;
        margin: 0.5em 0;
        p {
          display: block !important;
          flex: 1;
          margin: 0;
        }
        pre {
          color: var(--c-000099);
          display: block !important;
          flex: min-content 0;
          min-width: 25ch;
          margin: 0;
          border: none;
          font-size: 0.9rem;
        }
        break-before: avoid;
      }
    }
    section {
      flex: 50%;
    }
    section:has(> .blockbody:only-child > p:first-child) /* header */,
    section:has(ul) /* file type */,
    #Generalmain {
      flex: 100%;
    }
  }
}