/* https://www.catencode.com
   https://catenco.de
   by Chris A. Te Nyenhuis
   =(o.O)= {bonjour[fr] | hallo[de] | hola[es]}
*/
@import url('https://fonts.googleapis.com/css2?family=Comfortaa:wght@300;400;500;600;700&display=swap');
:root {
  --hex-vivid-blue: #0395de;
  --rgb-vivid-blue: rgb(3, 149, 222);
  --hex-strong-red: #b40000;
  --rgb-strong-red: rgb(180, 0, 0);
  --hex-lime-green: #1d761d;
  --rgb-lime-green: rgb(29, 118, 29);
}
* { font-family: 'Comfortaa', 'Verdana', 'Tahoma', sans-serif; }
a * { color: #fff !important; font-style: normal; }
p a {
  color: #fff;
  display: inline-block;
  font-weight: 800;
  letter-spacing: 1px;
  padding: 0 3px;
  position: relative;
  text-decoration: none;
  transition: color 0.2s ease, font-weight 0.2s ease;
}
p a::before {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--hex-vivid-blue);
  z-index: -1;
  width: 100%;
}
p a::after {
  content: '';
  position: absolute;
  top: 0px;
  bottom: -1px;
  left: 0;
  background: var(--hex-vivid-blue);
  transform: scaleY(0.05);
  transform-origin: bottom;
  transition: transform 0.2s ease-out;
  z-index: -1;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
  width: 100%;
}
p a:hover::after,
p a:focus::after,
p a:active::after {
  transform: scaleY(1);
}
p a:hover,
p a:focus,
p a:active {
  color: #fff !important;
}
p a:focus {
  outline: none;
}
b { font-family: 'Unica One', sans-serif; }
body, .gin-main-content, .gin-ui, h1, h2, h3, h4, h5, h6 {
    font-family: 'Comfortaa', sans-serif !important;
}
body { font-size: 16px; }
.breadcrumb__list { display: none !important; }
canvas { border: 1px #333 solid; border-radius: 9px; }
#content {
padding: 12px 3px;
background-color: #eee9;
border-radius: 12px;
border: 1px solid #ccc9;
}
code {
  display: block;
  position: relative;
  counter-reset: line;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.95rem;
  line-height: 1.55;
  background: #282828;
  color: #e3e3e3;
  padding: 12px 3px 12px 18px;
  margin: 20px 0;
  border-radius: 12px;
  overflow-x: auto;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}
.kw   { color: #569CD6; }
.fn   { color: #DCDCAA; }
.var  { color: #9CDCFE; }
.str  { color: #CE9178; }
.num  { color: #B5CEA8; }
.com  { color: #6A9955; font-style: italic; }
.type { color: #4EC9B0; }
.tag  { color: #569CD6; }
.attr { color: #9CDCFE; }
.val  { color: #CE9178; }
span.kw, span.fn, span.var, span.str, span.num, 
span.com, span.type, span.tag, span.attr, span.val {
  display: inline;
  padding: 0 2px;
  border-radius: 3px;
}
p code:not([class]) {
  box-shadow: inset 0 0 3px 1px rgba(255,255,255,.1);
  color: #e3e3e3;
  display: inline;
  padding: 4px 8px;
  border-radius: 6px;
  background: #282828;
  font-size: 0.95em;
}
em {
  color: color-mix(in oklab, var(--hex-vivid-blue), white 15%);
  font-weight: 600;
  font-style: normal;
  letter-spacing: 3px;
  padding: 0 1px;
}
.field--name-field-category {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  justify-content: center;
  margin-top: 1rem;
}
.field--name-field-category .field__item a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.2rem;
  font-size: 1rem;
  font-weight: 500;
  border-radius: 24px;
  border: none;
  background: var(--hex-vivid-blue);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 6px 10px rgba(0,0,0,0.25);
  text-decoration: none;
  opacity: 0;
  transform: translateY(20px);
  animation: bounceInFlicker 0.7s forwards, idlePulse 2.5s ease-in-out 0.7s infinite alternate; /* bounce + idle pulse */
  transition: transform 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.field--name-field-category .field__item:nth-child(1) a { animation-delay: 0.1s; }
.field--name-field-category .field__item:nth-child(2) a { animation-delay: 0.25s; }
.field--name-field-category .field__item:nth-child(3) a { animation-delay: 0.4s; }
.field--name-field-category .field__item:nth-child(4) a { animation-delay: 0.55s; }
.field--name-field-category .field__item:nth-child(5) a { animation-delay: 0.7s; }
@keyframes bounceInFlicker {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  40% {
    opacity: 0.6;
    transform: translateY(-8px);
  }
  60% {
    opacity: 0.9;
    transform: translateY(4px);
  }
  80% {
    opacity: 0.8;
    transform: translateY(-2px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes idlePulse {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
.field--name-field-category .field__item a:hover,
.field--name-field-category .field__item a:focus,
.field--name-field-category .field__item a:active {
  background: var(--hex-vivid-blue);
  transform: translateY(2px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.field--name-field-category .field__item a::before {
  content: '';
  display: inline-block;
  width: 1rem;
  height: 1rem;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 12l-8 8H4V12l8-8h8v8zm-5-3a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"/></svg>') no-repeat center;
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 12l-8 8H4V12l8-8h8v8zm-5-3a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"/></svg>') no-repeat center;
  background-color: currentColor;
}
li a {
   color: #0af;
   transition: all 0.5s ease-in-out; 
}
li a:active, li a:hover, li a:focus {
   color: #0bf 
}
#mnuFloat {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  z-index: 9999;
  border-top: 1px solid rgba(255,255,255,0.1);
  background: rgba(20,20,20,0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: transform 0.35s ease-in-out, opacity 0.3s ease;
  will-change: transform, opacity;
}
#mnuFloat.is-hidden {
  transform: translateY(100%);
}
#mnuFloat a {
  text-decoration: none;
}
.mnu-icon {
  display: inline-block;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  fill: currentColor;
  transition: fill 0.2s ease, transform 0.2s ease;
}
.mnu-icon svg {
  display: block;
  width: 36px;
  height: 36px;
  fill: #444;
  transition: fill 0.2s ease, transform 0.2s ease;
}
.mnu-icon:hover svg,
.mnu-icon:focus svg,
.mnu-icon.is-active svg {
  fill: var(--hex-vivid-blue);
  transform: scale(1.25);
  transition: ease-in-out 0.3s;
}
.mnu-icon:hover svg,
.mnu-icon:focus svg {
  animation: hoverBounce 0.35s ease forwards;
}
@keyframes hoverBounce {
  0%   { transform: scale(1.25) translateY(0); }
  25%  { transform: scale(1.27) translateY(-3px); }
  50%  { transform: scale(1.25) translateY(0); }
  75%  { transform: scale(1.26) translateY(-1.5px); }
  100% { transform: scale(1.25) translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  #mnuFloat,
  .mnu-icon svg {
    transition: none !important;
    transform: none !important;
  }
}
@media (max-width: 640px) {
  #mnuFloat {
    justify-content: space-around;
  }
}
.node--type-ciphers .field--name-field-category {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.8rem;
  justify-content: center;
  margin-top: 1rem;
}
.page-title {
   font-size: var(--gin-font-size-h1);
   transition: all 0.9s ease-in-out;
}
@media (min-width: 64em) {
  .region-sticky--is-sticky .page-title {
    font-size: var(--gin-font-size-h2);
  }
}
.path-taxonomy .page-title,
.path-taxonomy .views-label {
   display: none !important;
}
.region-sticky {
   box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0), 0px 9px 6px 0px rgba(0, 0, 0, .4);
   border-bottom: 1px #4448 solid;
}
.search-result__title a {
  text-decoration: none;
  text-transform: lowercase;
}
.search-result__snippet-info {
  margin: 1rem 1.25rem;
}
.search-result__info {
  display: none;
}