*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#000;color:#00ff00;font:14px/1.5 "Courier New",Courier,monospace}a{color:#00ff00;text-decoration:underline;text-underline-offset:2px}a:focus-visible,a:hover{color:#000;background:#00ff00}.page{max-width:1060px;padding:24px 25px 80px;margin:0 auto;text-align:center}.masthead{margin-bottom:38px}.portrait{display:block;width:min(100%,530px);height:auto;margin:0 auto 18px}h1,h2{font:inherit;font-weight:bold;margin:0 0 18px}h1{font-size:16px}h2{margin-top:40px}nav{margin:18px auto 35px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}p{margin:0 auto 15px;max-width:940px}section{margin:0 auto 36px}ul{list-style:none;margin:0;padding:0}li{margin:0 0 13px}.publication{margin:0 auto 29px}footer{margin-top:55px}footer p{margin-top:18px;font-size:12px}@media(max-width:650px){body{font-size:12px;line-height:1.55}.page{padding:18px 15px 60px}nav{gap:9px}h1{font-size:14px}.portrait{max-width:100%}} /* Charizard mouse cursor */
html,
body,
a,
button {
  cursor: url("/assets/charizard-cursor-48.png") 8 5, auto;
}

/* High-speed 3D privacy tunnel */

#full-turn-tunnel {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #000;
  color: #00ff00;
  overflow: hidden;
  font: 12px "Courier New", monospace;
}

#full-turn-tunnel canvas {
  width: 100%;
  height: 100%;
  display: block;
}

#full-turn-tunnel .ftt-msg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  max-width: 80vw;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
  line-height: 1.3;
  font-size: clamp(17px, 3.6vw, 26px);
  font-weight: bold;
  text-shadow: 0 0 9px #00ff00;
  pointer-events: none;
  will-change: transform, opacity;
}

#full-turn-tunnel button {
  border: 1px solid #00ff00;
  background: #000;
  color: #00ff00;
  padding: 8px 12px;
  font: 11px monospace;
  cursor: pointer;
}

#full-turn-tunnel .ftt-skip {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 4;
}

#full-turn-tunnel .ftt-end {
  display: none;
  position: absolute;
  inset: 0;
  background: #000;
  text-align: center;
  padding: 100px 20px;
}

#full-turn-tunnel .ftt-replay {
  margin-top: 32px;
}

@media (prefers-reduced-motion: reduce) {
  #full-turn-tunnel {
    display: none;
  }
}
/* Mobile tunnel improvements */
@media (max-width: 650px) {
  #full-turn-tunnel .ftt-msg {
    max-width: 75vw;
    white-space: normal;
    overflow-wrap: anywhere;
    text-align: center;
  }

  #full-turn-tunnel .ftt-skip {
    min-height: 44px;
    min-width: 64px;
  }
}

/* Animated terminal portrait */
.portrait {
  animation: terminalPortrait 4s infinite;
  transform-origin: center;
  will-change: filter, opacity, transform;
}

@keyframes terminalPortrait {
  0%, 85%, 100% {
    filter: brightness(1);
    opacity: 1;
    transform: translateX(0);
  }

  86% {
    filter: brightness(1.4);
    opacity: 0.9;
    transform: translateX(2px);
  }

  87% {
    filter: brightness(0.85);
    transform: translateX(-3px);
  }

  88% {
    filter: brightness(1.3);
    transform: translateX(1px);
  }

  89% {
    filter: brightness(1);
    opacity: 1;
    transform: translateX(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .portrait {
    animation: none;
  }
}
