
@keyframes krJitter{
  0%{transform:translate(0,0)}8%{transform:translate(-6px,2px) skewX(1.5deg)}
  16%{transform:translate(4px,-3px)}24%{transform:translate(-2px,5px) skewX(-2deg)}
  32%{transform:translate(7px,1px)}40%{transform:translate(-5px,-4px) skewX(1deg)}
  48%{transform:translate(2px,6px)}56%{transform:translate(-8px,0)}
  64%{transform:translate(3px,-5px) skewX(-1.5deg)}72%{transform:translate(-1px,3px)}
  80%{transform:translate(6px,-2px)}88%{transform:translate(-4px,4px) skewX(2deg)}
  100%{transform:translate(0,0)}
}
@keyframes krHue{
  0%,100%{filter:none}10%{filter:invert(1) hue-rotate(90deg)}12%{filter:none}
  30%{filter:hue-rotate(180deg) saturate(4)}34%{filter:none}
  55%{filter:invert(1)}57%{filter:none}
  75%{filter:hue-rotate(300deg) contrast(2)}79%{filter:none}
}
body.kr-glitching{animation:krJitter .18s steps(2,end) infinite, krHue 1.4s steps(1,end) infinite;overflow:hidden}
#krGlitch{position:fixed;inset:0;z-index:99998;pointer-events:none}
#krGlitch canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.35;mix-blend-mode:screen}
#krGlitch .kr-scan{position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.25) 0 2px,transparent 2px 4px)}
#krGlitch .kr-tear{position:absolute;left:0;right:0;height:22px;background:rgba(255,255,255,.14);transform:translateX(-30px);box-shadow:0 0 12px rgba(0,221,255,.5)}
#krGlitch .kr-msg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Share Tech Mono',monospace;font-size:clamp(18px,4vw,34px);color:#fff;text-shadow:3px 0 #ff3399,-3px 0 #00ddff;letter-spacing:.2em;animation:krBlink .12s step-end infinite}
@keyframes krBlink{50%{opacity:0}}

/* ---- 1996 text mode ---- */
#krWeb{position:fixed;inset:0;z-index:99999;display:none;flex-direction:column;background:#c0c0c0;color:#000;font-family:'Times New Roman',Times,serif;font-size:16px;line-height:1.35}
#krWeb.kr-open{display:flex}
#krWeb *{box-sizing:content-box}
/* fake Netscape chrome */
#krWeb .kr-titlebar{background:linear-gradient(#00007a,#000050);color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:12px;font-weight:bold;padding:3px 6px;display:flex;justify-content:space-between;align-items:center;flex:none}
#krWeb .kr-titlebar .kr-winbtns span{display:inline-block;width:16px;height:14px;background:#c0c0c0;border:1px solid;border-color:#fff #404040 #404040 #fff;color:#000;font-size:10px;line-height:12px;text-align:center;margin-left:2px}
#krWeb .kr-toolbar{background:#c0c0c0;border-bottom:2px groove #fff;padding:3px 6px;display:flex;gap:4px;align-items:center;flex:none;font-family:Arial,Helvetica,sans-serif;font-size:12px}
#krWeb .kr-toolbar button{font-family:Arial,Helvetica,sans-serif;font-size:12px;background:#c0c0c0;border:2px outset #fff;padding:2px 10px;cursor:pointer;color:#000}
#krWeb .kr-toolbar button:active{border-style:inset}
#krWeb .kr-addr{flex:1;background:#fff;border:2px inset #fff;padding:2px 6px;font-family:'Courier New',monospace;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#000}
/* page body */
#krWeb .kr-page{flex:1;overflow-y:auto;padding:14px clamp(10px,4vw,60px) 60px;-webkit-overflow-scrolling:touch}
#krWeb pre.kr-ascii{font-family:'Courier New',monospace;font-size:clamp(6px,1.7vw,13px);line-height:1.15;color:#000080;overflow-x:auto;margin:0 0 4px}
#krWeb h2{font-size:20px;margin:18px 0 6px;color:#000}
#krWeb hr{border:none;border-top:2px groove #fff;margin:14px 0}
#krWeb a{color:#0000ee;text-decoration:underline}
#krWeb a:visited{color:#551a8b}
#krWeb table.kr-hours{border-collapse:collapse;background:#fff;font-size:15px}
#krWeb table.kr-hours td,#krWeb table.kr-hours th{border:1px solid #808080;padding:3px 12px;text-align:left}
#krWeb table.kr-hours th{background:#000080;color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:13px}
#krWeb .kr-blink{animation:krBlink 1s step-end infinite;color:#c00;font-weight:bold}
#krWeb .kr-construct{height:20px;margin:10px 0;background:repeating-linear-gradient(45deg,#fc0 0 14px,#000 14px 28px);background-size:200% 100%;animation:krStripe 1.2s linear infinite;border:2px solid #000}
@keyframes krStripe{to{background-position:-40px 0}}
#krWeb .kr-marquee{overflow:hidden;background:#000;color:#0f0;font-family:'Courier New',monospace;padding:3px 0;white-space:nowrap;margin:10px 0}
#krWeb .kr-marquee span{display:inline-block;padding-left:100%;animation:krScroll 16s linear infinite}
@keyframes krScroll{to{transform:translateX(-100%)}}
#krWeb .kr-counter{display:inline-block;background:#000;color:#0f0;font-family:'Courier New',monospace;font-weight:bold;letter-spacing:3px;padding:2px 8px;border:2px inset #fff}
#krWeb .kr-badge{display:inline-block;background:#000080;color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:11px;padding:3px 8px;border:2px outset #9090ff;margin:2px 4px 2px 0}
#krWeb .kr-center{text-align:center}
#krWeb .kr-note{font-size:13px;color:#404040}
@media (prefers-reduced-motion:reduce){
  body.kr-glitching{animation:none}
  #krWeb .kr-blink,#krWeb .kr-construct,#krWeb .kr-marquee span{animation:none}
}

#krWeb .retro-back{display:inline-block;background:#c0c0c0;border:2px outset #fff;padding:2px 10px;color:#000;text-decoration:none;font:12px Arial,sans-serif}#krWeb a:focus-visible,#krWeb button:focus-visible{outline:2px solid #000080;outline-offset:3px}
