/* ~*~ FREAKY TYSON'S HOMEPAGE STYLESHEET ~*~ (it is 1998) */
html, body { margin: 0; padding: 0; height: 100%; overflow: hidden; }
body {
  background-color: #000020;
  background-image: radial-gradient(#fff 1px, transparent 1px), radial-gradient(#0ff 1px, transparent 1px), radial-gradient(#f0f 1.5px, transparent 1.5px);
  background-size: 37px 37px, 61px 61px, 97px 97px;
  background-position: 0 0, 18px 29px, 41px 7px;
  font-family: "Comic Sans MS", "Comic Sans", "Chalkboard SE", cursive, sans-serif;
  color: #fff; cursor: default;
}
a { color: #00ffff; } a:visited { color: #ff66ff; } a:hover { color: #ffff00; background: #ff0000; }
.blink { animation: blink 0.8s steps(1) infinite; }
.blink2 { animation: blink 1.2s steps(1) infinite; color: #ff0; }
@keyframes blink { 50% { opacity: 0; } }
.spin { display: inline-block; animation: spin 2s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.rainbow {
  font-family: Impact, "Arial Black", sans-serif; font-size: 40px; letter-spacing: 2px;
  background: linear-gradient(90deg, red, orange, yellow, lime, cyan, blue, magenta, red); background-size: 300% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent; animation: rb 3s linear infinite; text-shadow: none;
  filter: drop-shadow(3px 3px 0 #000);
}
@keyframes rb { to { background-position: 300% 0; } }
.uc { margin: 6px; padding: 4px 14px; display: inline-block; font-weight: bold; color: #000; border: 3px dashed #000;
  background: repeating-linear-gradient(45deg, #ffd800 0 12px, #111 12px 24px); }
.uc { color: #fff; text-shadow: 2px 2px 0 #000, -2px -2px 0 #000, 2px -2px 0 #000, -2px 2px 0 #000; }
table.geo { background: rgba(0, 0, 90, 0.82); border: 6px ridge #c0c0c0; margin-top: 8px; }
table.geo td { padding: 8px 12px; }
table.inner { border: 3px groove #808080; background: rgba(0, 0, 0, 0.55); border-collapse: collapse; }
table.inner td, table.inner th { border: 1px solid #556; padding: 3px 8px; }
table.inner th { background: #800080; color: #ff0; }
h2.hl { margin: 4px 0; font-family: "Arial Black", Impact, sans-serif; color: #ff0; background: #800000; border: 2px outset #f88; padding: 3px 8px; font-size: 18px; }
.body { font-size: 14px; line-height: 1.35; }
.small { font-size: 12px; }
.counter { margin: 10px; font-family: "Courier New", monospace; background: #000; color: #0f0; display: inline-block; padding: 4px 12px; border: 3px inset #888; }
input, select { font-family: inherit; font-size: 14px; background: #ffffcc; border: 2px inset #999; }
button { font-family: inherit; cursor: pointer; }
button.bigbtn { display: block; width: 100%; margin: 6px 0; font-size: 18px; font-weight: bold; padding: 8px; color: #fff;
  background: linear-gradient(#c0c0c0, #707070); color: #000; border: 4px outset #fff; }
button.bigbtn:active { border-style: inset; }
button.bigbtn.go { background: linear-gradient(#ff80ff, #c000c0); color: #ff0; }
button.tiny, .join { font-size: 12px; padding: 2px 8px; border: 2px outset #ddd; background: #c0c0c0; color: #000; }
.swatch { display: inline-block; width: 24px; height: 24px; margin: 2px; border: 3px outset #eee; cursor: pointer; vertical-align: middle; }
.swatch.sel { border: 3px solid #fff; box-shadow: 0 0 8px #fff, 0 0 0 2px #000 inset; transform: scale(1.2); }

#menu { position: absolute; inset: 0; overflow-y: auto; }

/* ---- game frame ---- */
#game { position: absolute; inset: 0; }
#frame { width: 100%; height: 100%; display: grid; grid-template-columns: 200px minmax(0, 1fr) 220px; grid-template-rows: auto minmax(0, 1fr) 24px; }
#rowBanner { grid-column: 1 / 4; height: 78px; background: linear-gradient(#300060, #000030); border-bottom: 4px ridge #c0c0c0; text-align: center; overflow: hidden; }
#gtitle { font-size: 34px; line-height: 46px; height: 46px; overflow: hidden; }
#gmarq { font-size: 15px; font-weight: bold; display: block; height: 22px; }
#rowFooter { grid-column: 1 / 4; background: #000040; border-top: 4px ridge #c0c0c0; overflow: hidden; line-height: 24px; }
#left, #right { background: rgba(10, 0, 50, 0.85); padding: 4px; border: 3px ridge #808080; overflow-y: auto; min-height: 0; box-sizing: border-box; }
#right { display: flex; flex-direction: column; }
#center { min-width: 0; min-height: 0; position: relative; display: flex; flex-direction: column; }
.box { border: 3px ridge #c0c0c0; background: rgba(0, 0, 60, 0.7); margin-bottom: 5px; padding: 3px; }
.boxh { background: linear-gradient(90deg, #800080, #0000a0); color: #ffff00; font-weight: bold; font-size: 12px; padding: 1px 4px; margin-bottom: 3px; border: 1px outset #aaf; }
table.res { width: 100%; font-size: 15px; font-weight: bold; }
table.res td:last-child { text-align: right; color: #0f0; font-family: "Courier New", monospace; }
table.res td.cash { color: #ff0; }
.bar { height: 14px; border: 2px inset #888; background: #200; }
#goalBar { height: 100%; width: 0; background: repeating-linear-gradient(90deg, #0f0 0 8px, #0a0 8px 16px); }
#mini { width: 100%; image-rendering: pixelated; border: 2px inset #888; background: #000; display: block; }
.links a { display: inline-block; margin: 1px 0; }
#viewport { position: relative; width: 100%; flex: 1; min-height: 0; background: #000; border: 4px ridge #c0c0c0; box-sizing: border-box; overflow: hidden; }
#cv { width: 100%; height: 100%; display: block; }
#hotbar { height: 66px; flex: none; display: flex; gap: 3px; padding: 3px; background: #101040; border: 3px ridge #888; box-sizing: border-box; overflow: hidden; }
.slot { flex: 1; min-width: 0; border: 3px outset #aaa; background: #202060; color: #fff; font-size: 10px; text-align: center; cursor: pointer; position: relative; overflow: hidden; line-height: 1.1; padding: 1px; }
.slot b { color: #ff0; font-size: 12px; display: block; }
.slot.sel { border-color: #ff0; background: #600060; box-shadow: 0 0 10px #f0f inset; }
.slot.no { opacity: 0.55; }
#noise { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; image-rendering: pixelated; mix-blend-mode: screen; }
#vig { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 0 0 rgba(255, 0, 0, 0); transition: box-shadow 0.15s; }
#vig.hurt { box-shadow: inset 0 0 120px 40px rgba(255, 0, 0, 0.75); }
#crosshair { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: #ff0; font-size: 22px; pointer-events: none; text-shadow: 1px 1px 0 #000; display: none; }
#modeTag { position: absolute; left: 6px; top: 6px; font-weight: bold; font-size: 14px; color: #0f0; text-shadow: 1px 1px 0 #000; background: rgba(0,0,0,.5); padding: 2px 6px; display: none; }
#heatTag { position: absolute; right: 6px; top: 6px; font-weight: bold; font-size: 16px; color: #f44; text-shadow: 1px 1px 0 #000; background: rgba(0,0,0,.5); padding: 2px 6px; display: none; }
#toasts { position: absolute; right: 8px; top: 40px; width: 330px; display: flex; flex-direction: column; gap: 4px; pointer-events: none; }
.toast { font-size: 13px; font-weight: bold; padding: 3px 8px; border: 3px outset #ccc; background: #000080; color: #fff; animation: tin 0.25s; box-shadow: 3px 3px 0 #000; }
.toast.good { background: #006020; color: #aff; border-color: #6f6; }
.toast.bad { background: #800000; color: #ff0; border-color: #f66; }
.toast.ying { background: #c60c30; color: #fff; border-color: #fcb514; }
.toast.freaky { background: #800080; color: #ff0; border-color: #f8f; }
.toast.loot { background: #5a5a00; color: #fff; border-color: #ff6; }
@keyframes tin { from { transform: translateX(60px); opacity: 0; } }
#finnSub { position: absolute; left: 50%; bottom: 70px; transform: translateX(-50%); font-family: "Courier New", monospace; font-size: 20px; font-weight: bold; color: #f22; text-shadow: 2px 2px 0 #000, 0 0 8px #f00; text-align: center; max-width: 80%; pointer-events: none; }
#prompt { position: absolute; left: 50%; bottom: 100px; transform: translateX(-50%); background: rgba(0,0,0,.65); border: 2px solid #ff0; color: #ff0; font-weight: bold; padding: 3px 10px; font-size: 15px; display: none; pointer-events: none; }
#chbar { position: absolute; left: 50%; bottom: 135px; transform: translateX(-50%); width: 240px; height: 18px; border: 3px ridge #ccc; background: #000; display: none; }
#chfill { height: 100%; width: 0; background: repeating-linear-gradient(90deg, #ff0 0 6px, #fa0 6px 12px); }
#chtxt { position: absolute; inset: 0; text-align: center; font-size: 12px; font-weight: bold; color: #000; mix-blend-mode: difference; filter: invert(1); }
#hpbar { position: absolute; left: 8px; bottom: 8px; width: 160px; height: 14px; border: 2px solid #fff; background: #300; }
#hpfill { height: 100%; width: 100%; background: linear-gradient(#f66, #c00); }
#stambar { position: absolute; left: 8px; bottom: 26px; width: 160px; height: 6px; background: #022; border: 1px solid #0aa; }
#stamfill { height: 100%; width: 100%; background: #0ff; }
#finnWarn { position: absolute; left: 50%; top: 10px; transform: translateX(-50%); color: #f22; font-weight: bold; font-size: 18px; text-shadow: 1px 1px 0 #000; display: none; animation: blink 0.4s steps(1) infinite; }
#overlay, #term { position: absolute; inset: 0; display: none; background: rgba(0, 0, 20, 0.7); align-items: center; justify-content: center; z-index: 5; }
#overlayBox, #termBox { background: #000070; border: 8px ridge #c0c0c0; padding: 12px 20px; max-height: 92%; overflow-y: auto; max-width: 92%; box-shadow: 0 0 40px #f0f; }
#termBox { width: 720px; font-size: 13px; }
#overlayBox { text-align: center; }
#termBox h3 { margin: 8px 0 3px; background: #800080; color: #ff0; padding: 1px 6px; border: 2px outset #f8f; font-size: 14px; }
#termBox table { width: 100%; border-collapse: collapse; }
#termBox td, #termBox th { border: 1px solid #66a; padding: 2px 5px; text-align: left; }
.tbtn { font-size: 12px; font-weight: bold; padding: 2px 8px; border: 3px outset #fff; background: #c0c0c0; color: #000; cursor: pointer; margin: 1px; display: inline-block; user-select: none; }
.tbtn:active { border-style: inset; }
.tbtn.dis { opacity: 0.45; }
#plist div { padding: 1px 0; }
#chat { height: 160px; overflow-y: auto; font-size: 12px; background: #000; border: 2px inset #888; padding: 2px; flex: 1; min-height: 80px; }
#chat div { word-wrap: break-word; }
#chatIn { width: 100%; box-sizing: border-box; margin-top: 3px; }
#right .box:nth-child(3) { display: flex; flex-direction: column; flex: 1; min-height: 170px; }
body.boring #left, body.boring #right, body.boring #rowBanner, body.boring #rowFooter { display: none; }
body.boring #frame { grid-template-columns: 0 minmax(0, 1fr) 0; grid-template-rows: 0 minmax(0, 1fr) 0; }
body.boring #hotbar { background: #000; }

#invTag { position: absolute; left: 8px; bottom: 38px; font-size: 12px; font-weight: bold; color: #fff; text-shadow: 1px 1px 0 #000; background: rgba(0,0,0,.45); padding: 1px 6px; pointer-events: none; }

#lockHint { position: absolute; left: 50%; top: 56px; transform: translateX(-50%); background: rgba(0,0,0,.6); color: #0ff; border: 2px solid #0ff; font-weight: bold; padding: 3px 12px; font-size: 14px; display: none; pointer-events: none; animation: blink 1.2s steps(1) infinite; }
#viewport::after { content: ''; position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 90px 10px rgba(0,0,0,.55); z-index: 1; }
#term, #overlay { z-index: 6; }

.gbox { background: linear-gradient(#20083a, #0a0a30); border: 4px ridge #ff40c0; padding: 8px; margin-top: 6px; }
.reels { text-align: center; margin: 10px 0; } .reel { display: inline-block; min-width: 70px; padding: 8px 12px; margin: 0 4px; font-size: 44px; background: #f4f4f4; color: #000; border: 4px inset #888; border-radius: 6px; }
.gres { text-align: center; font-size: 17px; font-weight: bold; margin: 6px; } .gres.w { color: #4f4; } .gres.l { color: #f66; }
.bjrow { font-size: 16px; margin: 8px 0; } .card { display: inline-block; background: #fff; color: #000; border: 2px solid #444; border-radius: 4px; padding: 2px 6px; margin: 2px; font-weight: bold; } .card.red { color: #d01010; } .card.back { background: repeating-linear-gradient(45deg, #a02060 0 4px, #601040 4px 8px); color: #fff; }
.tbtn.selbet { background: #ffe040; box-shadow: 0 0 8px #ff0; }

#vehHud { position: absolute; right: 10px; bottom: 10px; text-align: right; font-weight: bold; color: #0ff; font-size: 13px; text-shadow: 1px 1px 0 #000; background: rgba(0,0,20,.6); border: 3px ridge #888; padding: 4px 10px; display: none; pointer-events: none; line-height: 1.1; }

#distTag { position: absolute; left: 50%; top: 8px; transform: translateX(-50%); font-family: Impact, 'Arial Black', sans-serif; font-size: 18px; letter-spacing: 2px; text-shadow: 2px 2px 0 #000, 0 0 10px currentColor; pointer-events: none; opacity: .75; white-space: nowrap; }
#distTag.flash { animation: distflash 3.2s ease-out; }
@keyframes distflash { 0% { font-size: 34px; opacity: 1; } 70% { font-size: 34px; opacity: 1; } 100% { font-size: 18px; opacity: .75; } }

#bigmap { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0.9; pointer-events: none; z-index: 30; display: none; }
#tunnelFx { position: absolute; inset: 0; pointer-events: none; opacity: 0; z-index: 12; background: radial-gradient(ellipse at center, rgba(0,0,0,0) 18%, rgba(0,0,0,0.92) 62%); transition: opacity 0.4s; }
#funBars { position: absolute; inset: 0; pointer-events: none; z-index: 40; display: none; }
#funBars .fb { position: absolute; left: 0; right: 0; height: 12%; background: #000; }
#funBars .top { top: 0; } #funBars .bot { bottom: 0; }
#funHead { position: absolute; top: 3%; left: 0; right: 0; text-align: center; color: #ddd; font-size: 20px; letter-spacing: 3px; text-shadow: 2px 2px 0 #000; }
#funTxt { position: absolute; bottom: 2%; left: 4%; right: 4%; text-align: center; color: #fff; font-size: 17px; font-weight: bold; text-shadow: 2px 2px 0 #000, 0 0 8px #000; }
#termBox.g3on .reels, #termBox.g3on .bjrow { display: none; }

#achBanner { position: absolute; top: 14%; left: 50%; transform: translateX(-50%); z-index: 45; display: none; background: linear-gradient(#ffd030, #ff8a10); color: #300; border: 5px ridge #fff; padding: 10px 24px; font-size: 18px; text-align: center; font-weight: bold; box-shadow: 0 0 30px #ff0; pointer-events: none; }
#achBanner.pop { animation: achpop 0.5s ease-out; } @keyframes achpop { from { transform: translateX(-50%) scale(0.2); } 60% { transform: translateX(-50%) scale(1.2); } to { transform: translateX(-50%) scale(1); } }
#newsBox { position: absolute; inset: 0; z-index: 80; display: flex; flex-direction: column; background: #c0c0c0; border: 4px outset #fff; }
#newsBox .nbar { background: linear-gradient(90deg, #000080, #1084d0); color: #fff; padding: 3px 8px; font-weight: bold; font-size: 12px; display: flex; justify-content: space-between; }
#newsBox .nx { background: #c0c0c0; color: #000; border: 2px outset #fff; padding: 0 6px; cursor: pointer; }
#newsBox .ntools { background: #c0c0c0; padding: 3px 6px; font-size: 11px; color: #000; border-bottom: 2px groove #fff; white-space: nowrap; overflow: hidden; }
#newsBox .ntools b { margin-right: 8px; } #newsBox .nurl { background: #fff; border: 2px inset #888; padding: 1px 6px; margin-left: 8px; }
#newsBox .nbody { flex: 1; overflow-y: auto; background: #fff; color: #111; } #newsBox .nstat { background: #c0c0c0; color: #000; font-size: 11px; padding: 2px 6px; border-top: 2px groove #fff; }

#volBox .volrow { display: flex; align-items: center; gap: 4px; margin: 3px 0; font-size: 11px; color: #ff0; } #volBox .volrow span { width: 82px; flex: none; } #volBox .volrow b { width: 24px; text-align: right; color: #0f0; font-family: monospace; }
#volBox input[type=range] { -webkit-appearance: none; appearance: none; flex: 1; min-width: 0; height: 14px; background: linear-gradient(90deg, #f0f, #0ff, #ff0); border: 2px inset #888; border-radius: 0; outline: none; }
#volBox input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 14px; height: 20px; background: linear-gradient(#fff, #c0c0c0); border: 2px outset #fff; cursor: pointer; }
#volBox input[type=range]::-moz-range-thumb { width: 12px; height: 18px; background: #c0c0c0; border: 2px outset #fff; border-radius: 0; }
#tickerBar { position: absolute; left: 0; right: 0; top: 0; height: 17px; overflow: hidden; background: rgba(0,0,0,0.72); border-bottom: 1px solid #0f0; font: bold 11px 'Courier New', monospace; cursor: pointer; z-index: 20; white-space: nowrap; }
#tickerBar .trk { display: inline-block; animation: tkscroll 55s linear infinite; padding-top: 2px; }
#tickerBar .tk { margin-right: 26px; }
@keyframes tkscroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

#driftHud { position: absolute; inset: 0; pointer-events: none; z-index: 18; overflow: hidden; display: none; font-family: Impact, 'Arial Black', sans-serif; }
#dfSpeed { position: absolute; left: -50%; top: -50%; width: 200%; height: 200%; opacity: 0; background: repeating-conic-gradient(from 0deg, rgba(255,255,255,0) 0deg 6deg, rgba(255,255,255,0.5) 6.3deg 6.6deg); -webkit-mask-image: radial-gradient(circle, transparent 28%, #000 62%); mask-image: radial-gradient(circle, transparent 28%, #000 62%); mix-blend-mode: screen; }
#dfVig { position: absolute; inset: 0; opacity: 0; }
#dfBox { position: absolute; right: 24px; top: 24%; text-align: right; color: #fff; text-shadow: 2px 2px 0 #000; opacity: 0; transition: opacity .12s; transform-origin: right center; }
#dfRate { font-size: 20px; letter-spacing: 3px; font-style: italic; }
#dfMult { font-size: 96px; line-height: 0.9; font-style: italic; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-stroke: 2px #000; }
#dfPts { font-size: 38px; color: #fff; font-variant-numeric: tabular-nums; }
#dfBar { width: 190px; height: 8px; border: 2px solid #000; background: rgba(0,0,0,0.6); margin: 4px 0 4px auto; transform: skewX(-20deg); }
#dfBarIn { height: 100%; width: 0; }
#dfAng { font-size: 16px; color: #ddd; letter-spacing: 2px; }
#dfPop { position: absolute; left: 0; right: 0; top: 36%; text-align: center; font-size: 54px; font-style: italic; opacity: 0; text-shadow: 3px 3px 0 #000, 0 0 24px currentColor; -webkit-text-stroke: 1px #000; }
#dfPop.go { animation: dfpop 1.9s ease-out; }
@keyframes dfpop { 0% { opacity: 0; transform: scale(2.6) skewX(-8deg); } 10% { opacity: 1; transform: scale(1) skewX(-8deg); } 70% { opacity: 1; transform: scale(1.05) skewX(-8deg); } 100% { opacity: 0; transform: translateY(-60px) scale(1.1) skewX(-8deg); } }
#dfTot { position: absolute; left: 0; right: 0; bottom: 74px; text-align: center; font-size: 13px; color: #fff; letter-spacing: 2px; text-shadow: 1px 1px 0 #000; opacity: 0.8; }
