html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/*   Main.   */
* {
  cursor: url("../cursor.png") 2 10, auto; }

html {
  background-color: #000; }

html, body {
  font-family: "Lato", sans-serif;
  height: 100%;
  font-size: 16px;
  letter-spacing: 0;
  line-height: 1.3;
  color: #fff; }

body {
  display: flex;
  flex-direction: column; }

#site {
  flex: 1 0 auto; }

.wrapper {
  max-width: 800px;
  margin: 0 auto; }

/*   Footer.   */
footer {
  display: block;
  padding: 1em;
  line-height: 1;
  font-size: 14px;
  color: #999;
  flex-shrink: 0;
  text-align: right;
  overflow: hidden;
  position: relative; }
  footer a {
    color: #999; }
  footer ul {
    padding: 0;
    list-style-type: none;
    display: inline-block; }
    footer ul li {
      display: inline-block;
      line-height: inherit;
      margin-left: 1em; }

@media only screen and (max-width: 600px) {
  footer {
    height: auto;
    text-align: center; }
    footer ul li {
      display: block;
      padding: 0; } }
/*   Main.   */
a {
  text-decoration: none;
  color: #ff6600;
  border-bottom: 1px dotted transparent; }
  a:hover {
    text-decoration: none;
    color: #ff6600;
    border-bottom: 1px dashed #ff6600; }

a, button {
  cursor: url("../cursor_dark.png") 2 10, pointer; }
  a:hover, button:hover {
    cursor: url("../cursor_dark.png") 2 10, pointer; }

h1, h2, h3 {
  margin: 1em 0; }

h1 {
  font-size: 28px; }

body:not(:has(#modern-toggle:checked)) .site-title {
  margin-top: 2em; }

body:has(#modern-toggle:checked) .site-title {
  margin-bottom: 2em; }

.site-title {
  display: flex;
  align-items: center;
  gap: 1em;
  margin: 0 0 1em; }
  .site-title h1 {
    margin: 0; }
  .site-title .subtitle {
    margin-top: 0;
    margin-bottom: 0; }

.title-logo {
  width: 52px;
  height: 52px;
  flex-shrink: 0; }

h2 {
  font-size: 22px; }

h3 {
  font-size: 16px; }

h4 {
  font-size: 14px; }

ul {
  padding-left: 3em;
  list-style-type: disc; }

p {
  margin: 1em 0;
  text-align: justify; }

em, i {
  font-style: italic; }

/*   Content.   */
div.content {
  padding: 1em; }
  div.content .wrapper > img {
    max-width: 100%; }

/*   Layout with side rails.   */
.box-area {
  width: fit-content;
  max-width: 100%;
  margin: 0 auto; }

.layout {
  display: flex;
  align-items: flex-start;
  gap: 2em; }
  .layout .content {
    flex: 0 1 auto;
    padding: 0; }

.box {
  height: 90px;
  margin: 1em 0;
  border: 1px solid #ff6600;
  color: #ff6600;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  display: none;
  align-items: center;
  justify-content: center; }

body:has(#modern-toggle:checked) .box {
  display: flex; }

.box-top {
  height: 160px;
  margin: 2em 0; }

.box-left,
.box-right {
  flex: 0 0 160px;
  align-self: stretch;
  min-height: 600px;
  height: auto;
  margin: 0;
  padding: .5em;
  position: sticky;
  top: 1em; }

/*   Bottom notice.   */
.notice {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 900;
  min-height: 33vh;
  display: none;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  gap: 1.5em;
  padding: 2em;
  padding-right: 12em;
  background: #000;
  border-top: 1px solid #333;
  color: #fff;
  font-size: 18px;
  line-height: 1.5; }
  .notice .notice-text p {
    margin: 0 0 1em; }
    .notice .notice-text p:last-child {
      margin-bottom: 0; }
  .notice .notice-dismiss {
    position: absolute;
    right: 2em;
    top: 50%;
    transform: translateY(-50%);
    flex-shrink: 0;
    padding: 0.6em 1.4em;
    border: 1px solid #ff6600;
    background: transparent;
    color: #ff6600;
    font-family: inherit;
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: background-color .3s, color .3s; }
  .notice .notice-dismiss:hover {
    background: #ff6600;
    color: #fff; }

body:has(#modern-toggle:checked) .notice {
  display: flex; }

body:has(#notice-close:checked) .notice {
  display: none; }

/*   Hidden state checkboxes (no-JS toggles).   */
.toggle-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none; }

/*   Modern web experience toggle.   */
body:has(#modern-toggle:checked) .toggle {
  display: none; }

.toggle {
  display: flex;
  align-items: center;
  gap: .6em;
  margin-left: auto;
  font-size: 14px;
  color: #999;
  flex-shrink: 0; }
  .toggle input {
    position: absolute;
    opacity: 0;
    pointer-events: none; }
  .toggle .toggle-track {
    position: relative;
    flex-shrink: 0;
    width: 42px;
    height: 22px;
    border: 1px solid #ff6600;
    border-radius: 999px;
    transition: background-color .3s; }
  .toggle .toggle-thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #ff6600;
    transition: left .3s, background-color .3s; }
  .toggle input:checked + .toggle-track {
    background: #ff6600; }
  .toggle input:checked + .toggle-track .toggle-thumb {
    left: 22px;
    background: #000; }
  .toggle input:focus-visible + .toggle-track {
    outline: 2px solid #ff6600;
    outline-offset: 2px; }

::selection {
  background: #ffa366;
  color: #fff; }

/*   Home page (index).   */
.subtitle {
  margin-top: 0;
  color: #888; }

#body-index h1 {
  margin-bottom: .2em; }

#body-index .site-title h1 {
  margin-bottom: 0; }

.dickover-backdrop {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1em;
  background: rgba(0, 0, 0, 0.85);
  z-index: 1000;
  animation: dickover-fade 0.3s ease-out; }

body:has(#modern-toggle:checked) .dickover-backdrop {
  display: flex; }

body:has(#dickover-close:checked) .dickover-backdrop {
  display: none; }

.dickover {
  background: #000;
  color: #fff;
  border: 1px solid #333;
  padding: 2em;
  max-width: 22em;
  text-align: center;
  animation: dickover-fade 0.3s ease-out; }
  .dickover p {
    text-align: inherit;
    margin: 0 0 1.5em; }
  .dickover .dickover-dismiss {
    display: inline-block;
    padding: 0.6em 1.4em;
    border: 1px solid #ff6600;
    background: transparent;
    color: #ff6600;
    font-family: inherit;
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: not-allowed;
    opacity: 0.4;
    pointer-events: none;
    animation: dickover-enable 5s steps(1, jump-end) forwards;
    transition: background-color .3s, color .3s; }
  .dickover .dickover-dismiss:hover {
    background: #ff6600;
    color: #fff; }
  .dickover .countdown {
    animation: dickover-countdown-hide 5s steps(1, jump-end) forwards; }
  .dickover .digits {
    display: inline-grid; }
    .dickover .digits span {
      grid-area: 1 / 1;
      opacity: 0;
      animation: dickover-blip 1s linear; }
    .dickover .digits span:nth-child(1) {
      animation-delay: 0s; }
    .dickover .digits span:nth-child(2) {
      animation-delay: 1s; }
    .dickover .digits span:nth-child(3) {
      animation-delay: 2s; }
    .dickover .digits span:nth-child(4) {
      animation-delay: 3s; }
    .dickover .digits span:nth-child(5) {
      animation-delay: 4s; }

@keyframes dickover-enable {
  0% {
    cursor: not-allowed;
    opacity: 0.4;
    pointer-events: none; }
  100% {
    cursor: pointer;
    opacity: 1;
    pointer-events: auto; } }
@keyframes dickover-countdown-hide {
  0% {
    opacity: 1; }
  100% {
    opacity: 0; } }
@keyframes dickover-blip {
  0%, 100% {
    opacity: 1; } }
@keyframes dickover-fade {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
article {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "title date" "desc  ." "foot  .";
  gap: .4em 1em;
  margin: 2em 0; }
  article .title {
    grid-area: title;
    align-self: baseline;
    font-size: 1.2em;
    margin-top: 0;
    margin-bottom: 0;
    overflow-wrap: anywhere; }
  article .meta {
    grid-area: date;
    align-self: baseline;
    text-align: right;
    font-size: 0.85em;
    opacity: 0.7; }
  article .desc {
    grid-area: desc;
    margin: 0;
    text-align: justify; }
  article .footnotes {
    grid-area: foot;
    margin: .6em 0 0;
    padding: 0;
    list-style: none;
    font-size: 0.8em;
    opacity: 0.6; }
    article .footnotes li {
      text-align: justify; }
    article .footnotes .fn-num {
      margin-right: .3em; }
  article .fn-ref {
    font-size: 0.7em;
    vertical-align: super;
    line-height: 0; }
  @media only screen and (max-width: 800px) {
    article {
      grid-template-columns: 1fr;
      grid-template-areas: "title" "date" "desc" "foot"; }
      article .meta {
        text-align: left; } }

@media only screen and (max-width: 1140px) {
  .box-area {
    width: auto;
    padding: 0 1em; }

  body:has(#modern-toggle:checked) .box-left,
  body:has(#modern-toggle:checked) .box-right {
    display: none; }

  .site-title {
    flex-wrap: wrap; }

  .toggle {
    margin-left: 0;
    width: 100%; }

  .notice {
    min-height: 0;
    padding: 1.5em; }
    .notice .notice-text p:nth-child(n+3) {
      display: none; }
    .notice .notice-dismiss {
      position: static;
      transform: none;
      align-self: stretch;
      text-align: center; } }
