/* WELCOME TO THE MONOLITHIC SPREADSHEET FROM HELL */
em {
  text-shadow: 1px 1px 2px rgba(255, 0, 255, 0.61);
}

.linkheader {
  margin: 5px;
  margin-top: 10px;
  padding: 1px;
  text-align: center;
  border: 1px solid #00f;
  border-left: none;
  border-right: none;
  /* TODO: Width between 70% - 100% */
  /*background-image: linear-gradient(90deg, rgba(0, 0, 0, 0.0), rgba(100, 21, 150, 0.48), rgba(0, 0, 0, 0.0));*/
}
.linkheader li {
  display: inline-block;
  margin: 5px;
  font-size: 1.2em;
}
.linkheader a {
  text-shadow: 1px 1px 1px #00f;
}
.bloodtext {
  text-shadow: 0px 1px 1px #100, 0px 2px 1px #200, 0px 3px 1px #300, 0px 4px 1px #400, 0px 5px 1px #500, 0px 6px 1px #600, 0px 7px 1px #700, 0px 8px 1px #800, 0px 9px 1px #900, 0px 10px 1px #a00, 0px 11px 1px #b00, 0px 12px 1px #c00, 0px 13px 1px #d00, 0px 14px 1px #e00, 0px 15px 1px #F00;
}
body {
  text-shadow: 1px 1px 1px #000;
  margin: 8px; /* this is needed for tribute on ff, same as default */
}
#mylogo {
  text-align: center;
}
#mylogo canvas {
  cursor: pointer;
  border: 1px solid #f00;
  border-image: linear-gradient(45deg, #f00 0%, #000 31%, #ff0 54%, #00f 63%, #f0f 75%, #00f 90%, #0f0);
  border-image-slice: 1;
  box-shadow: 30px 0px 62px -16px #f0f, -19px -13px 36px -16px #01ff5b, -9px 7px 58px -16px #00f;
}

#myname {
}
#myname canvas {
  z-index: -1;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 100% !important;
  height: 100% !important;
}

@keyframes rot {
  from { transform: rotateY(0deg); }
  to { transform: rotateY(360deg);}
}

.starlist {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}
.starlist > li {
  padding-left: 1em;
  text-indent: -1em;
}
.starlist > li:before {
  content: "*";
  padding-right: 5px;
  color: #55f;
}

.scroll-container {
  width: 100%;
  height: 100%;
  overflow-x: scroll;
  overflow-y: scroll;
}
.vertical-scroll-container {
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: scroll;
}
.horizontal-scroll-container {
  width: 100%;
  height: 100%;
  overflow-x: scroll;
  overflow-y: hidden;
}

#frames {
  margin: 0;
  padding: 0;
  text-shadow: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
}
#frames div {
  margin: 0;
}
#frames > div {
  border: 2px ridge #ccc;
  border-bottom: 2px ridge grey;
  border-right: 2px ridge grey;
  display: inline-block;
  flex-grow: 1;
  /*white-space: nowrap;*/
}
/*uncomment for glitch*/
/*#frames div div {
  padding: .5em;
}*/

.chat, .randomxd, .tribtrig {
  width: 400px;
  height: 80px;
  display: block;
}
.randomxd {
  color: #ff8600;
  background-color: #0000e8;
}

.tribtrig {
  /*backdrop-filter: hue-rotate(270deg) contrast(1.2);*/
}
.tribtrig div {
  text-align: center;
}
.tribtrig .content {
  padding-top: .7em;
}
.tribtrig a {
  font-family: sans-serif;
  font-size: 3em;
  font-weight: bold;
  color: #010101;
  text-shadow: 2px 2px #e4b21b, -2px -2px #00ffdc, -3px 1px rgba(246, 0, 255, 0.1);
  padding: 4px;
}
.tribtrig a:hover, .tribtrig a:focus {
  text-shadow: 2px 2px #80bcff, -2px -2px #ff90ba, -3px 1px rgba(246, 0, 255, 0.1);
  background: none;
  border: 2px ridge #ff0;
}

.chat {
  /* stema */
  background-color: #262626;
  background-image: linear-gradient(#262626, #161616);
  /*border: 1px solid #161616 !important;*/
}
.chat pre, .insomnia pre, .prebreak {
  white-space: pre-wrap;
  word-wrap: break-word;
}
.chat .joppiesaus {
  color: #8bb43b;
}
.chat .gish {
  color: #54a5c4;
}

.t1 {
  width: 20vw;
  height: 22vh;
}
.t2 {
  width: 30vw;
  height: 30vh;
  min-height: 200px;
}
.halfofthechildrendied {
  color: #000;
  background-color: #fff;
  min-width: 400px;
  width: 21vw;
}
.insomnia {
  max-width: 400px;
  color: #080;
  background-color: #100;
}
.goodmorning {
  min-width: 400px;
  color: orange;
}
.msn {
  width: 15vw;
}
.skull {
  width: 50vw;
  max-width: 400px;
  white-space: nowrap;
  min-height: 200px;
  text-align: center;
}
.skull img {
  margin: 16px;
}
.skull div {
  background-image: url(img/bg15.gif);
  background-attachment: local;
}
.skull .content {
  min-width: 450px;
}
.recipes {
}
.recipes h1 {
  border: 10px outset silver;
  background-color: orange;
  color: #f00;
  text-shadow: 2px 2px #ff0;
  font-family: sans-serif;
  box-shadow: 0 0 14px 2px #ff6314, inset 0 0 8px 3px #ffd400;
}
.recipes ul {
  list-style-image: url(data:image/gif;base64,R0lGODlhEAAQAPIAAHpmAI8pAMlGEpaAEcmuIODHSPXebgAAACH5BAEAAAcALAAAAAAQABAAAANLeLowQyvGVkyRkoYN8aFGIAQXBoab0TFDZbxwqZxbYAzv2r6DaN+WBQ5Yg+EWhMoQVlwdksbQSIVJDosyCRT28iCVOe/3lRUTHIUEADs=);
}
.recipes a:hover, .recipes a:focus {
  box-shadow: 0 0 14px 2px #ff6314;
}

.gifcities {
  position: relative;
  background-image: url(img/bg4.png);
  text-shadow: 0px 0px 10px #000;
  width: 20vw;
}
.gifcities .content {
  text-align: center;
}
.gifcities .bottomribbon {
  pointer-events: none;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 44px;
  background-image: url(img/cityribbon.png);
}
.gifcities h1 {
  color: #f00;
  text-shadow: none;
  text-decoration: underline;
}
.gifcities h1 span {
  background-color: #ff0;
}
.gifcities h1 a {
  background-color: #000;
}

.tired {
  color: #d003d0;
  background-color: #000;
  width: 9em;
}
.marsinternet {
  width: 10em;
  text-shadow: 1px 1px brown;
  background-color: rgba(199, 103, 18, 0.77);
}
.gymnasticoffice {
  width: 13em;
  color: #0ff;
  background-color: #0d3a27;
}
.tvads {
  width: 10em;
  background-color: gray;
  color: brown;
}
.copyright {
  width: 11em;
  color: #b00b13;
  background-color: #5a1ade;
  text-shadow: 1px 1px #d00d1e;
}
.takemeaway {
  width: 10em;
  background-color: #400;
  color: #003;
  text-shadow: 1px 1px 1px #00c;
}
.takemeaway .content {
  background: linear-gradient(#400, #301);
}
.pissedoffisptv {
  text-shadow: 1px 1px 1px #000;
  background-color: rgba(1, 0, 0, 0.1);
}
.thefinaldayofschool {
  font-family: sans-serif;
  color: #ffa725;
  background-color: #000001;
  background: linear-gradient(rgba(0, 0, 0, 0.85), rgba(34, 0, 0, 0.85));
  text-shadow: 1px 1px 5px purple, 1px 1px #000;
  width: 48%;
  min-width: 10em;
}
.chat5 {
  width: 19em;
}
.linuxsucks {
  font-family: "Ubuntu", sans-serif;
  text-shadow: 1px 1px 1px #000;
  background: linear-gradient(34deg, #711d5d, #de4819);
}
.linuxsucks a {
  color: #09d0e8;
}
.linuxsucks code {
  font-family: "Ubuntu Mono", monospace;
  padding: 2px;
  border-radius: 2px;
  background-color: rgba(0, 0, 0, 0.3);
}
.vrstuff {
  width: 18em;
}
.consume {
  width: 70%;
}
.consume .content {
  background: linear-gradient(rgba(100, 0, 0, 0.5), transparent);
}
.consume .content > div {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  flex-flow: row wrap;
  justify-content: space-around;
}
.consume .content > div div {
  display: inline-block;
  flex-grow: 1;
  flex-shrink: 1;
  margin: auto;
}
.consume h1 {
  text-align: center;
  text-shadow: 1px 1px 3px #900;
  transition: text-shadow 1s linear;
}
.consume h1:hover {
  text-shadow: -3px 0px 4px #900;
}
.consume ins {
  display: block;
  margin: 0;
  padding: 0;
  font-size: .8em;
  color: rgba(128, 128, 128, 0.4);
  text-decoration: none;
}
.consume h2 {
  font-style: italic;
  margin: 0.1em;
  text-shadow: 0 0 2px #009;
}
/*.consume h2:after {
  content: ":";
  color: rgba(100, 100, 100, 0.5);
}*/
.consume ul {
  margin: 2px;
  padding: 3px;
}
.consume .movies span {
  color: grey;
  text-shadow: none;
}
.consume .movies {
  font-family: serif;
  background-color: #000;
  box-shadow: 0px 0px 15px #000;
}
.consume .movies li {
  text-shadow: 1px 1px 1px #900;
  color: Orange;
}
.consume .tvshows li:before {
  color: #163131;
  content: ">"
}
.consume .tvshows {
  background-color: #062f00;
  color: #f7ff00;
  text-shadow: -1px 0px 1px #f55;
  box-shadow: 0px 0px 15px #1d5403;
}
.consume .vidya {
  font-family: monospace;
  box-shadow: 0 0 1em rgba(0, 0, 100, 0.5);
  background-color: rgba(0, 0, 100, 0.5);
}
.consume .vidya li:before {
  color: #891252;
  content: "-";
}
.consume .vidya li:nth-child(even):before {
  color: #991252;
  content: "+";
}
.banner {
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.9);
  width: 30vw;
}
.banner a {
  color: #f00;
}
.banner a:hover, .banner a:focus, .banner code {
  background-color: #e02422;
}
.banner .magicbanner {
  height: 32px;
  background: repeating-linear-gradient(45deg, #f0f 0 12px, #000 12px 24px, #0f0 24px 36px, #000 36px 48px);
}
.banner .magicbanner:hover {
  background: repeating-linear-gradient(-45deg, #00f 0 12px, #000 12px 24px, #ff0 24px 36px, #000 36px 48px);
}
.content.padding {
  padding: 5px;
}
.photographsofmywebsite {
  background-color: #000;
  background-color: rgba(0, 0, 0, 0.9);
  color: #2196f3;
}
.photographsofmywebsite img {
  display: inline-block;
  width: 100%;
  box-shadow: 0 0 3em #2196f3;
  flex-shrink: 0;
}
.misclinks {
  color: #ff0;
  background-color: #070;
  text-shadow: 1px 1px #673ab7;
  text-align: center;
}
.misclinks a {
  color: #00ffe0;
}
.misclinks ul {
  padding: 0;
  list-style-type: none;
}
.vrstuff h1 {
  text-shadow: 2px 2px #00f;
}
.vrstuff .content {
  background: linear-gradient(rgba(0, 185, 220, 0.3), transparent);
}

.chat6 a:hover span, .chat6 a:focus span {
  color: #f00;
  background-color: #ff0;
}

.lib {
  text-shadow: 1px 1px rgba(255, 0, 0, 0.65);
}
.lib a {
  text-shadow: 1px 1px #00f;
}
.lib ul {
  background: linear-gradient(90deg, #000, transparent 30%);
}
.lib ul li:nth-child(even){
  list-style-type: square;
}
.lib h1 > span {
  color: grey;
  font-size: 8px;
}
.lib h1 {
  text-align: center;
}
.lib h1:before, .lib h1:after {
  content: "~";
  color: #00d8ff;
  padding: 4px;
}
.cvdes {
  font-family: serif;
  text-shadow: 0px 0px 1em #008;
  background-color: rgba(0, 0, 112, 0.8);
  color: #ff0;
}
.cvdes .content {
  background: linear-gradient(180deg, rgba(0, 0, 112, 1.0) 78%, rgba(0, 0, 112, 0.6), rgba(0, 0, 112, 0.1), transparent), repeating-linear-gradient(45deg, #fff200, #FFEB3B 20px, rgba(0, 19, 169, 0.85) 20px, rgba(0, 22, 193, 0.91) 40px) local;
  min-height: 100%;
  padding-bottom: 10px;
}
.cvdes span.padding {
  box-sizing: border-box;
  display: block;
  padding: 5px;
  background: linear-gradient(transparent, rgba(0, 0, 112, 1.0)), repeating-linear-gradient(45deg, rgba(0, 0, 255, 0.1), rgba(10, 0, 200, 0.1) 20px, #f00 20px, #f00 40px);
}
.cvdes h1 {
  margin: 0;
}
.cvdes ul li:nth-child(even) {
  list-style-type: square;
}
.cvdes a {
  background-color: #010140;
  color: #f00;
}
.cvdes a:hover, .cvdes a:focus {
  background-color: #f00;
  color: #ff0;
}

.words {
  background-color: rgba(249, 212, 102, 0.63);
  width: 11em;
}
.words p {
  text-shadow: 1px 1px 1px #3132ff;
}
.words em {
  color: #f00;
  font-weight: bold;
  font-size: 2em;
  text-shadow: 1px 1px #ff0;
}
.words em:hover {
  text-transform: uppercase;
}
.words ::-moz-selection {
  background-color: #8b0000;
}
.words ::selection {
  background-color: #8b0000;
}

.miserabletips {
  /*width: 40vw;*/
  background-color: rgba(10, 10, 10, 0.78);
  color: #eee;
}

.conformingto, .fbanners {
  height: 120px;
}
.conformingto {
  width: 49vw;
}
.conformingto > div {
  background: linear-gradient(45deg, rgba(244, 67, 54, 0.64), rgba(0, 0, 0, 0.1), rgba(26, 50, 179, 0.7)) local;
}
.conformingto .content {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: center;
  white-space: nowrap;
}
.conformingto a {
  flex-grow: 1;
  text-align: center;
}
.conformingto .subscrieb {
  text-shadow: 1px 1px 1px #f00;
}
.conformingto img:hover, .fbanners img:hover {
  filter: hue-rotate(180deg);
}
.hostedbyneocities img {
  height: 100px;
}

.fbanners {
  background-color: rgba(0, 0, 0, 0.1);
  max-width: 46vw;
  min-width: 88px;
}
.fbanners .content {
  text-align: center;
}

.suckbar {
  height: 24px;
  width: 100vw;
  background-color: #c0c0c0;
  background: linear-gradient(90deg, #c0c0c0, rgba(251, 15, 255, 0.9));
  padding: 0;
  white-space: nowrap;
  position: relative;
  text-align: center;
}
.suckbar img {
  float: left;
}
.suckbar img:hover {
  filter: contrast(300%);
  cursor: pointer;
  box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.75);
}
.suckbar .useragent {
  font-size: 10px;
  text-shadow: .5px .5px rgba(0, 0, 0, .5);
  word-break: break-all;
}
.suckbar .time {
  font-size: 20px;
  margin: 1px;
  font-family: Ubuntu, monospace;
  color: #1d00ea;
  text-shadow: 1px 1px #00fff4;
  position: absolute;
  right: 0;
  float: right;
}

.oneyear {
  text-align: center;
  font-style: italic;
  text-shadow: 1px 1px 2px #000;
  border: 1px solid grey;
  border-image: linear-gradient(90deg, rgba(0,0,0,0.0),rgba(255, 0, 0, 0.08), rgba(125, 125, 125, 0.63), rgba(37, 0, 255, 0.05),rgba(0,0,0,0.0));
  border-image-slice: 1;
}
.oneyear:before, .oneyear:after {
  content: "~";
  margin: 5px;
  color: #ff0;
}

.adult1 {
  color: #4CAF50;
}
.hardtoread {
  text-shadow: 10px 1px #ff6a00;
}
.notendoftheworld {
  width: 35em;
  color: #ff7676;
  background-color: #4e0000;
  text-shadow: 0 -1px #000;
}

.dreams {
  width: 27em;
  color: #00ffe0;
  text-shadow: 0 0 1px #000, 0 0 1em rgba(0, 220, 255, 0.41), 1px 1px #9a0094;
  letter-spacing: 0;
  background-color: #0b005d;
  background: linear-gradient(40deg, rgba(103, 0, 0, 0.93), rgba(0, 39, 228, 0.87));
  transition: letter-spacing 5s ease-out;
  font-size: 18px;
}
.dreams:hover {
  letter-spacing: 1em;
  transition: letter-spacing 100s linear;
}
.dreams span {
  font-size: 1.2em;
  font-style: italic;
  text-shadow: 2px 2px #f00;
}

.android_software {
	width: 31em;
}
.dutch_bands {
	width: 31em;
	background: linear-gradient(#000028, #000);
}
.dutch_bands a {
	color: #99f;
}
.dutch_bands a:hover {
	color: #000;
	background: #99f;
}
.dutch_bands li {
	list-style-type: disclosure-closed;
}
.dutch_bands h2 {
	font-family: papyrus, ani, serif;
}

.traintr {
  overflow: hidden;
}
.traintr img {
  height: 96px;
  animation: train_drive_by 60s linear 0s infinite;
}

@keyframes train_drive_by {
  0%
  {
    transform: translate3d(1200%,0,0);
  }
  100%
  {
    transform: translate3d(-1200%,0,0);
  }
}

.stx, .traintr {
    width: 100%;
}

em {
    color: #ff0;
}

.halloween {
  color: #38f3ab;
}
.halloween a {
  color: #ff9800;
}
.halloween a:focus, .halloween a:hover {
  background-color: #ff9800;
  color: #000;
}
.halloween em {
  color: #f00;
}
/*.halloween ul {
  list-style-image: url(img/skullbut.gif);
}*/
#frames > div.halloween {
  border: 2px ridge #962929;
  border-bottom: 2px ridge #9a0b0b;
  border-right: 2px ridge #900707;
}

/* ===== THE LIVE ROOM (room.js) ===== */
.room-feed {
  max-width: 640px;
  margin: 0 auto 1.4em;
  border: 1px solid #00f;
  background: rgba(0, 0, 0, 0.55);
  box-shadow: 0 0 18px -6px #f0f;
}
.room-feed-head {
  padding: 4px 10px;
  border-bottom: 1px solid #303;
  font-weight: bold;
  letter-spacing: 1px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.room-live { color: #0f0; font-size: .85em; }
.room-live::before {
  content: "● ";
  color: #f00;
  animation: room-blink 1.1s steps(1) infinite;
}
@keyframes room-blink { 50% { color: #400; } }
.room-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 260px;
  overflow-y: auto;
}
.room-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 5px 10px;
  border-bottom: 1px solid #1a0a1a;
  font-size: .95em;
  animation: room-in .4s ease;
}
@keyframes room-in { from { opacity: 0; transform: translateY(-4px); } }
.room-icon { flex: none; }
.room-text { flex: 1; }
.room-time { flex: none; color: #888; font-size: .8em; white-space: nowrap; }
.room-row.is-tweet { background: rgba(0, 40, 80, 0.35); }
.room-row.is-tweet .tw { color: #4ab3ff; font-weight: bold; }
.room-row.is-note { background: rgba(0, 60, 0, 0.3); }
.room-foot { padding: 5px 10px; border-top: 1px solid #303; font-size: .9em; }

/* ===== THE NOTE BOARD (feed.html) ===== */
.board-list { list-style: none; margin: 1em 0 0; padding: 0; }
.board-note {
  border-left: 3px solid #0f0;
  background: rgba(0, 40, 0, 0.25);
  padding: 6px 10px;
  margin: 8px 0;
}
.board-name { color: #0f0; font-weight: bold; }
.board-when { color: #888; font-size: .8em; margin-left: 6px; }
.board-msg { margin-top: 3px; }
.board-empty { color: #888; list-style: none; }

/* a vertical column that stacks two short frames (chat over gibberish) */
.framecol {
  border: none !important;
  background: none !important;
  display: flex;
  flex-direction: column;
  width: 400px;
}
.framecol > div {
  width: 100% !important;
  border: 2px ridge #ccc;
  border-bottom: 2px ridge grey;
  border-right: 2px ridge grey;
}

/* live feed sized to sit beside the stacked column, in the ⌁skrEEE slot */
.liveroom {
  width: 400px;
  background: rgba(0, 0, 0, 0.72);
  text-shadow: none;
  display: flex;
  flex-direction: column;
}
.liveroom .room-list { max-height: 124px; flex: 1; }
.liveroom .room-row { font-size: .82em; padding: 3px 8px; }
.liveroom .room-feed-head { font-size: .9em; }
.liveroom .room-foot { font-size: .8em; }

/* WAOTOO — OUT LOUD avatar in the live feed header */
.room-title { display: inline-flex; align-items: center; gap: 7px; }
.room-ava {
  width: 22px;
  height: 22px;
  border: 1px solid #555;
  border-radius: 4px;
  vertical-align: middle;
  flex: none;
}

/* Waotoo peeking in from the right edge (transparent PNG, real cutout) */
.waotoo-peek {
  position: absolute;
  top: 285px;
  right: 8px;
  width: 205px;
  max-width: 26vw;
  pointer-events: none;
  z-index: -1;
}
.waotoo-peek-img { display: block; width: 100%; height: auto; }
/* red flashing laser eyes, dropped on his two eye-dots */
.laser-eye {
  position: absolute;
  width: 7%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: #f00;
  animation: laser-flash 1.3s ease-in-out infinite;
}
.laser-eye.eye1 { left: 38.3%; top: 61.7%; }
.laser-eye.eye2 { left: 51.7%; top: 58%; animation-delay: .15s; }
@keyframes laser-flash {
  0%, 100% {
    background: #500;
    box-shadow: 0 0 3px 1px rgba(255, 0, 0, 0.45);
  }
  50% {
    background: #ff3b3b;
    box-shadow: 0 0 9px 3px rgba(255, 0, 0, 0.95),
                0 0 22px 7px rgba(255, 0, 0, 0.6),
                0 0 40px 14px rgba(255, 0, 0, 0.3);
  }
}
@media (max-width: 700px) {
  .waotoo-peek { width: 135px; top: 215px; right: 4px; }
}

/* the "stop the background" toggle sits inside the H1 — keep it off the title */
h1 button {
  margin-left: 0.9em;
  vertical-align: middle;
  font-size: 0.4em;
  font-weight: normal;
  line-height: 1.4;
  padding: 3px 8px;
  cursor: pointer;
  white-space: nowrap;
}

/* right rail under the peeking head: social links + the $WAOTOO CA box */
.right-rail {
  position: absolute;
  top: 576px;
  right: 14px;
  width: 200px;
  z-index: 5;
  text-align: center;
}
.rail-social { display: flex; justify-content: center; gap: 14px; margin-bottom: 9px; }
.rail-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  color: #f0f; border: 1px solid #50f; border-radius: 7px;
  background: rgba(0, 0, 0, 0.55);
  box-shadow: 0 0 10px -4px #f0f;
}
.rail-ico:hover, .rail-ico:focus { background: #f0f; color: #000; }
.ca-box {
  border: 1px solid #00f;
  background: rgba(0, 0, 0, 0.6);
  box-shadow: 0 0 16px -5px #f0f;
  padding: 8px 10px;
}
.ca-head { color: #ff0; font-weight: bold; letter-spacing: 1px; }
.ca-value { color: #0f0; font-family: monospace; margin: 4px 0; font-size: 1.05em; }
.ca-dots { animation: ca-blink 1.1s steps(1) infinite; }
@keyframes ca-blink { 50% { opacity: 0; } }
.ca-note { color: #9a9a9a; font-size: .72em; line-height: 1.3; }
@media (max-width: 760px) {
  .right-rail { top: 430px; right: 8px; width: 150px; }
  .ca-note { font-size: .68em; }
}

/* keep the intro text out of the right gutter where the head + rail live */
.intro { padding-right: 260px; box-sizing: border-box; }
@media (max-width: 900px) { .intro { padding-right: 200px; } }
@media (max-width: 620px) { .intro { padding-right: 0; } }

/* four icons now — let them wrap on narrow rails */
.rail-social { flex-wrap: wrap; }

/* a letter from the dev — modal */
.letter-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.letter-overlay[hidden] { display: none; }
.letter-box {
  position: relative;
  max-width: 560px;
  max-height: 85vh;
  overflow-y: auto;
  background: linear-gradient(rgba(12, 0, 18, 0.97), rgba(0, 0, 0, 0.97));
  border: 1px solid #00f;
  box-shadow: 0 0 42px -8px #f0f;
  padding: 26px 32px 30px;
  color: #ececec;
  line-height: 1.55;
  text-align: left;
}
.letter-box h2 { color: #f0f; margin: 0 0 .6em; }
.letter-box p { margin: .7em 0; }
.letter-box strong { color: #fff; }
.letter-box em { color: #ff0; font-style: normal; }
.letter-sign { color: #0ff; margin-top: 1.3em !important; }
.letter-close {
  position: absolute;
  top: 6px;
  right: 12px;
  background: none;
  border: none;
  color: #f0f;
  font-size: 1.9em;
  line-height: 1;
  cursor: pointer;
}
.letter-close:hover { color: #fff; }

/* CA copy button (live contract address) */
.ca-copy {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 5px auto 2px;
  padding: 4px 9px;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid #0f0;
  color: #0f0;
  font-family: monospace;
  font-size: .98em;
  cursor: pointer;
}
.ca-copy:hover { background: #0f0; color: #000; }
.ca-copy.ok { border-color: #ff0; color: #ff0; background: rgba(40, 40, 0, 0.5); }
.ca-ico { opacity: .75; }

/* show the full CA: wider rail + wrap the address instead of truncating */
.right-rail { width: 220px; }
.intro { padding-right: 285px; }
.ca-copy {
  display: block;
  width: 100%;
  box-sizing: border-box;
  white-space: normal;
  word-break: break-all;
  text-align: center;
  font-size: .74em;
  line-height: 1.45;
}
.ca-ico { display: inline; margin-left: 5px; }

/* CA on a single line: wider box, no wrap, font sized to fit */
.right-rail { width: 252px; }
.intro { padding-right: 320px; }
.ca-copy {
  white-space: nowrap;
  word-break: normal;
  overflow: hidden;
  font-size: .52em;
}
@media (max-width: 620px) {
  .right-rail { width: 200px; }
  .intro { padding-right: 0; }
  .ca-copy { font-size: .46em; }
}

/* size the box so the full address fits on ONE line with nothing clipped */
.right-rail { width: 308px; }
.intro { padding-right: 368px; }
.ca-copy { white-space: nowrap; word-break: normal; overflow: visible; font-size: .46em; }
@media (max-width: 820px) {
  .right-rail { width: 200px; }
  .intro { padding-right: 0; }
  .ca-copy { white-space: normal; word-break: break-all; font-size: .62em; } /* phones: wrap, one line won't fit */
}

.ca-copy { font-size: .43em; }

.ca-copy { font-size: 11px; }

.right-rail { width: 318px; }
.intro { padding-right: 378px; }

/* three jump icons -> rectangles, no rounding, spanning the CA box width */
.rail-social { gap: 6px; flex-wrap: nowrap; margin-bottom: 0; }
.rail-ico { flex: 1 1 0; width: auto; height: 34px; border-radius: 0; }
.ca-box { margin-top: 16px; }

.ca-box { margin-top: 14px; }

/* TBA placeholder state (no real CA yet) — narrower box again */
.right-rail { width: 318px; }
.intro { padding-right: 378px; }
.ca-tba {
  display: inline-block;
  margin: 5px auto 2px;
  padding: 4px 18px;
  border: 1px dashed #0f0;
  color: #0f0;
  font-family: monospace;
  font-weight: bold;
  letter-spacing: 3px;
}

.rail-social { margin-top: 26px; }


/* Final mobile layout: keep the restored rail and full intro readable. */
@media (max-width: 820px) {
  html, body {
    max-width: 100%;
    overflow-x: hidden;
  }
  .intro {
    width: 100%;
    max-width: 100%;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
  #frames > div,
  .framecol,
  .chat,
  .randomxd,
  .tribtrig,
  .liveroom {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  .right-rail {
    position: static;
    top: auto;
    right: auto;
    width: min(318px, 100%);
    margin: 18px auto 10px;
  }
  .rail-social {
    order: initial;
    flex-wrap: nowrap;
    margin: 0 0 10px;
  }
  .ca-box { margin-top: 0; }
  .linkheader {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2px 8px;
  }
  .linkheader li { margin: 3px 0; }
  h1 button {
    display: block;
    margin: 8px 0 0;
    white-space: normal;
  }
}
