/* ============================================================
   BUMPER STICKER OF THE MONTH CLUB
   hand-coded in notepad, basically
   ============================================================ */

body {
  margin: 0;
  padding: 12px 8px 30px;
  font-family: "Comic Sans MS", "Chalkboard SE", cursive, sans-serif;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;   /* iOS inflates text on its own otherwise */
  text-size-adjust: 100%;
  color: #000;
  background-color: #000080;          /* until the random tile loads */
  background-repeat: repeat;
  background-position: top left;
  background-attachment: fixed;
  background-size: 320px auto;        /* tile everything like a 90s pattern */
  text-align: center;
}

/* ---------- LOGO ---------- */
#topsign { margin: 6px auto 10px; }
#logo {
  max-width: 92%;
  width: 720px;
  max-height: 42vh;          /* keep the giant logo from eating the fold */
  height: auto;
  object-fit: contain;
}

/* ---------- SCROLLING CRAWLS ----------
   Was <marquee>. WebKit and Blink size that element differently, and it can
   report its full text width, dragging the whole document wider than the
   screen. A div with overflow:hidden cannot do that. */
.crawl {
  display: block;
  width: 100%;
  max-width: 900px;
  margin: 0 auto 10px;
  padding: 5px 0;
  overflow: hidden;          /* the whole point: never widen the page */
  white-space: nowrap;
  box-sizing: border-box;
  font-family: "Courier New", monospace;
  font-weight: bold;
  font-size: 15px;
  letter-spacing: 1px;
  color: #ffff00;
  background: #000;
  border: 3px ridge #00ff00;
}
.crawl > span {
  display: inline-block;
  padding-left: 100%;        /* start just off the right edge */
  animation: crawl 26s linear infinite;
}
#botcrawl { color: #00ffff; border-color: #ff00ff; margin-top: 14px; }
#botcrawl > span { animation-duration: 18s; }

@keyframes crawl {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}
@media (prefers-reduced-motion: reduce) {
  .crawl { white-space: normal; text-align: center; }
  .crawl > span { padding-left: 0; animation: none; }
}

/* ---------- THE GREY TABLE ---------- */
#frame {
  /* a div, not a table: tables size to their contents and engines disagree
     about honouring max-width on them. a div just obeys. */
  width: 900px;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0 auto;
  border: 6px ridge #c0c0c0;
  background: rgba(198, 198, 198, 0.94);   /* opaque grey = readable text */
}
#content {
  padding: 20px 26px 10px;
  text-align: left;
  overflow-wrap: break-word;        /* big accessibility text must wrap, not clip */
  word-wrap: break-word;
}

/* ---------- TYPE ---------- */
h1 {
  overflow-wrap: break-word;
  font-family: Impact, "Arial Black", sans-serif;
  font-size: 40px;
  line-height: 1.05;
  margin: 10px 0;
  color: #ff00a0;
  letter-spacing: 1px;
  text-shadow: 2px 2px 0 #000, 4px 4px 0 #00ffff;
}
h2 {
  overflow-wrap: break-word;
  font-family: Impact, "Arial Black", sans-serif;
  font-size: 25px;
  letter-spacing: 1px;
  margin: 22px 0 10px;
  color: #000080;
  text-shadow: 1px 1px 0 #fff;
}
p { line-height: 1.5; margin: 10px 0; }
.lead { font-size: 18px; }
.center { text-align: center; }
.small { font-size: 13px; }
.big { font-size: 22px; font-weight: bold; }

.hilite {
  display: inline-block;
  background: #ffff00;
  border: 2px dashed #ff0000;
  padding: 5px 12px;
  font-weight: bold;
  font-size: 18px;
}

/* the single most important CSS rule on this website */
.blink { animation: blink 1s steps(1, end) infinite; color: #ff0000; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .blink { animation: none; }
}

hr.rainbow {
  height: 7px;
  border: 0;
  margin: 18px 0;
  background: linear-gradient(to right,
    #ff0000, #ff8000, #ffff00, #00c000, #0080ff, #6000ff, #ff00ff, #ff0000);
}

/* ---------- INNER TABLES ---------- */
table.inner {
  max-width: 100%;
  border: 3px inset #808080;
  background: #e6e6e6;
  border-collapse: separate;
}
table.inner td {
  border: 2px groove #bfbfbf;
  vertical-align: top;
  font-size: 15px;
}
.pricetag {
  font-family: Impact, "Arial Black", sans-serif;
  font-size: 19px;
  color: #008000;
  margin: 2px 0 6px;
  text-align: center;
  letter-spacing: 1px;
}

/* ---------- GALLERY ---------- */
table.gallery { margin: 14px auto; }
table.gallery td {
  text-align: center;
  vertical-align: top;
  width: 50%;
}
table.gallery img {
  max-width: 100%;
  width: 300px;
  max-height: 300px;         /* tall shots don't get to be a mile high */
  height: auto;
  object-fit: contain;
  border: 5px ridge #ff00ff;
  background: #fff;
  padding: 3px;
}
.cap {
  font-size: 13px;
  font-weight: bold;
  margin: 6px 0 2px;
  color: #000080;
}

/* ---------- SOLD OUT BOX ---------- */
#soldout {
  border: 4px ridge #ff0000;
  background: #ffffcc;
  padding: 10px 16px;
  margin: 12px auto;
  max-width: 560px;
  text-align: center;
}

/* ---------- FORM ---------- */
.formbox { margin: 14px auto; background: #d4d0c8; }
.formbox td.lbl {
  font-family: "Courier New", monospace;
  font-weight: bold;
  font-size: 14px;
  white-space: nowrap;
  text-align: right;
}
input[type="text"], input[type="email"], select {
  font-family: "Courier New", monospace;
  font-size: 15px;
  padding: 3px;
  border: 2px inset #808080;
  background: #fff;
  max-width: 100%;
}
button {
  font-family: Impact, "Arial Black", sans-serif;
  font-size: 21px;
  letter-spacing: 1px;
  color: #fff;
  background: #ff00a0;
  border: 4px outset #ff66c4;
  padding: 8px 20px;
  cursor: pointer;
}
button:hover { background: #00a000; border-color: #33d033; }
button:active { border-style: inset; }
#formnote { color: #444; }
#thanks { color: #008000; }

/* ---------- FAQ ---------- */
dl { max-width: 720px; margin: 10px auto; }
dt {
  font-weight: bold;
  font-size: 17px;
  color: #cc0000;
  margin-top: 14px;
}
dt::before { content: "\25B8 "; }
dd { margin: 4px 0 0 22px; line-height: 1.5; }

/* ---------- BIG BUTTON LINK ---------- */
.bigbtn {
  display: inline-block;
  font-family: Impact, "Arial Black", sans-serif;
  font-size: 24px;
  letter-spacing: 1px;
  text-decoration: none;
  color: #000;
  background: #ffff00;
  border: 5px outset #ffd700;
  padding: 10px 24px;
  margin: 8px 0;
}
.bigbtn:hover { background: #00ffff; border-color: #66ffff; }

/* ---------- LINKS ---------- */
a { color: #0000ee; }
a:visited { color: #660099; }
a:hover { color: #ff0000; }

/* ---------- FOOTER ---------- */
#footer {
  border-top: 3px double #808080;
  margin-top: 20px;
  padding-top: 12px;
}
.counter {
  font-family: "Courier New", monospace;
  font-size: 26px;
  font-weight: bold;
  letter-spacing: 6px;
  color: #00ff00;
  background: #000;
  border: 3px inset #666;
  padding: 4px 10px;
}

/* ---------- SMALL SCREENS (Netscape didn't have these) ---------- */
@media (max-width: 600px) {
  /* iOS chokes on fixed backgrounds; let it scroll */
  body { background-attachment: scroll; background-size: 200px auto; }
  h1 { font-size: 28px; }
  h2 { font-size: 20px; }
  #content { padding: 14px 12px 8px; }
  table.inner td, table.gallery td { display: block; width: auto; }
  table.inner, table.gallery { table-layout: fixed; width: 100%; }
  .formbox td.lbl { text-align: left; white-space: normal; }
  input[type="text"], input[type="email"], select {
    width: 100%;
    box-sizing: border-box;  /* size="28" is a min width otherwise */
  }
}
