/* 90s-style site stylesheet for Solstice Website */

:root{
  --mint: #e6fcf2;
  --accent: #2b7a48;
  --shadow: rgba(0,0,0,0.35);
}

html,body{
  height:100%;
  background-color: var(--mint);
  background-image: url("assets/background.png");
  background-repeat: repeat;
  background-attachment: fixed;
}
body{
  margin:0;
  font-family: 'Consolas', 'Lucida Console', 'Courier New', monospace;
  letter-spacing: 0.02em;
  background-color: transparent;
  background-image: none;
  color:#033;
  cursor: url("assets/cursors/arrow.cur"), auto;
}

.page-wrap{
  max-width:1000px;
  margin:0 auto;
  text-align:center;
  padding-top:36px;
  position:relative;
}

.visitor-counter{
  position:absolute;
  top:10px;
  right:10px;
  z-index:5;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
  padding:2px;
  width:158px;
  box-sizing:border-box;
  border:2px outset #9adbb6;
  border-radius:1px;
  background:#e6fcf2;
  box-shadow:2px 2px 0 #2b7a48;
  line-height:0;
}

.visitor-counter img{
  display:block;
  max-width:88px;
  height:auto;
  image-rendering:pixelated;
}

.visitor-counter img[alt="Visitor count"]{
  max-width:60px;
  filter:grayscale(1) sepia(1) hue-rotate(65deg) saturate(4) contrast(1.25);
}

@media (max-width:600px){
  .visitor-counter{
    position:relative;
    top:auto;
    right:auto;
    width:max-content;
    margin:0 10px 8px auto;
  }
}

header .logo{
  width:180px;
  height:180px;
  display:block;
  margin:0 auto 12px;
  filter:contrast(1.05);
}

/* Fade-in logo on first load */
.logo{
  opacity:0;
  animation: solsticeFade 1s ease-in-out 0.2s forwards;
}
@keyframes solsticeFade{
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

#nav-buttons{
  display:flex;
  gap:12px;
  justify-content:center;
  align-items:center;
  margin:8px 0 24px;
}

/* Blinkies (horizontal scrolling small banners) */
#blinkies{
  width:100%;
  overflow:hidden;
  box-sizing:border-box;
  margin: 0 0 24px;
  height:48px;
}
#blinkies .track{
  display:flex;
  align-items:center;
  height:100%;
  width:max-content;
  gap:0;
  --blinkDuration: 16s;
  animation: blinkMove var(--blinkDuration) linear infinite;
  will-change: transform;
}
#blinkies .track .group{
  display:flex;
  gap:12px;
  align-items:center;
  flex: 0 0 auto;
  width:max-content;
}
#blinkies .track img{
  height:32px;
  display:block;
  flex: 0 0 auto;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  -ms-interpolation-mode: nearest-neighbor;
}
@keyframes blinkMove{
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Pause animation on hover */
#blinkies:hover .track{ animation-play-state:paused }

#nav-buttons a img{
  display:block;
  width:120px;
  height:auto;
  border:3px outset #bfe9d5;
  background:transparent;
}

#nav-buttons a img:hover{
  transform:translateY(-2px);
  box-shadow: 0 6px 0 #9acaa9, 0 8px 20px var(--shadow);
}

main{min-height:60vh; padding:24px 24px;}

.photo-page-content {
  width: min(100%, 1180px);
}

.photo-sections {
  display: flex;
  flex-direction: column;
  gap: 28px;
  width: 100%;
}

.photo-section {
  width: 100%;
  box-sizing: border-box;
}

.photo-section h2 {
  margin: 0 0 12px;
  font-size: 1.1rem;
  text-align: left;
  color: #033;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
  align-items: start;
  width: 100%;
}

.photo-card {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: rgba(255,255,255,0.16);
  border: 3px outset #bfe9d5;
  padding: 8px;
  box-sizing: border-box;
  min-width: 0;
}

.photo-card img {
  display: block;
  width: 100%;
  height: clamp(160px, 22vw, 280px);
  object-fit: cover;
  border: 2px solid rgba(0,0,0,0.1);
  background: #fff;
  box-sizing: border-box;
}

.photo-card figcaption {
  display: none;
}

.hero{
  display:block;
  box-sizing: border-box;
  max-width:880px; /* match content-box max-width */
  margin:24px auto;
  /* match the buttons' outer style: 3px outset mint border */
  border: 3px outset #bfe9d5;
  background: rgba(255,255,255,0.02);
  padding:8px; /* inner spacing so image doesn't touch border */
  border-radius:4px;
}
.hero img{
  display:block;
  width:100%;
  height:auto;
  box-sizing:border-box;
  border: none;
}

footer{
  margin:24px 0;
  font-size:12px;
  color:#055;
}

/* 90s style dotted border content box */
.content-box{
  margin: 0 auto 24px;
  border:4px dotted #9adbb6;
  padding:18px;
  background:linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0));
  display:block;
  width:min(100%, 880px);
  max-width:880px;
  box-sizing:border-box;
}

.content-box h1,
.content-box h2,
.content-box h3{
  text-align: left;
  margin-top: 0;
  word-break: break-word;
}

.radio-page-content{
  min-height:520px;
}

.radio-intro,
.radio-note{
  text-align:center;
}

.radio-url-form{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin:12px auto;
}

.radio-url-form input{
  width:min(100%, 420px);
  box-sizing:border-box;
  padding:6px;
  border:2px inset #bfe9d5;
  background:#f5fff9;
  color:#033;
  font:inherit;
}

.radio-url-form button{
  padding:6px 10px;
  border:2px outset #bfe9d5;
  background:#e6fcf2;
  color:#033;
  font:inherit;
  cursor:pointer;
}

#webamp-container{
  position:relative;
  min-height:410px;
  margin:18px auto;
  border:3px inset #bfe9d5;
  background:rgba(230,252,242,0.35);
  overflow:hidden;
}

#webamp-container #main-window{
  top:50% !important;
  left:50% !important;
  transform:translate(-50%, -50%) !important;
}

.post-content{
  text-align: left;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.post-content p,
.post-content li,
.post-content blockquote,
.post-content pre{
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.post-content a[data-image-viewer],
.photo-card a[data-image-viewer]{
  cursor: zoom-in;
}

.post-content a[data-image-viewer] img,
.photo-card a[data-image-viewer] img{
  cursor: inherit;
}

#image-viewer{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px;
  box-sizing:border-box;
  background:rgba(0,20,16,0.86);
  cursor:zoom-out;
}

#image-viewer[hidden]{
  display:none;
}

#image-viewer img{
  display:block;
  max-width: min(96vw, 1400px);
  max-height: 92vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border:3px solid #bfe9d5;
  background:#fff;
  box-shadow:0 8px 30px rgba(0,0,0,0.5);
  cursor:default;
}

.image-viewer-close{
  position:absolute;
  top:14px;
  right:18px;
  width:38px;
  height:38px;
  border:2px outset #bfe9d5;
  background:#e6fcf2;
  color:#033;
  font: bold 24px/30px 'Lucida Console', monospace;
  cursor:pointer;
}

.generated-post-layout{
  display: flex;
  flex-wrap: wrap;
  gap: 18px 20px;
  align-items: flex-start;
  justify-content: flex-start;
  margin-top: 18px;
  width: 100%;
}

.generated-post-image{
  flex: 0 0 auto;
  max-width: min(100%, 220px);
  width: 220px;
  margin: 0;
}

.generated-post-image img{
  display: block;
  width: 100%;
  height: auto;
  border:3px solid #9adbb6;
  background:#fff;
  padding:2px;
  box-sizing:border-box;
}

.generated-inline-image{
  width: min(100%, 560px);
  max-width: 100%;
  margin: 18px auto;
}

.generated-inline-image img{
  width: 100%;
  height: auto;
  object-fit: contain;
}

.generated-post-caption{
  margin-top: 8px;
  font-size: 12px;
  color: #033;
  line-height: 1.4;
  word-break: break-word;
}

.about-layout{
  max-width: 980px;
  margin: 0 auto 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.about-gallery{
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
  width: min(500px, 100%);
  margin: 0 auto;
  flex-wrap: nowrap;
}

.about-photo-pair{
  display: flex;
  gap: 8px;
  justify-content: center;
  flex: 1 1 0;
  min-width: 0;
}

.about-photo{
  border: 3px outset #bfe9d5;
  background: rgba(255,255,255,0.2);
  padding: 2px;
  box-sizing: border-box;
  overflow: hidden;
  flex: 0 0 auto;
}

.about-photo.large{
  width: 52%;
  max-width: 220px;
  min-width: 150px;
  margin: 0;
}

.about-photo.small{
  flex: 1 1 0;
  width: 50%;
  max-width: 110px;
  min-width: 80px;
}

.about-photo img{
  display: block;
  width: 100%;
  height: 150px;
  image-rendering: auto;
  object-fit: cover;
}

.about-text-box {
  width: 100%;
  max-width: none;
  display: block;
  box-sizing: border-box;
  border: 3px solid rgba(116, 179, 146, 0.8) !important;
  background: rgba(255,255,255,0.08) !important;
  box-shadow: inset 0 0 0 2px rgba(116, 179, 146, 0.45) !important;
  padding: 18px !important;
  margin-top: 10px;
}

.about-text-box h1{
  margin: 0 0 12px;
  font-size: clamp(2rem, 3vw, 3rem);
  text-align: center;
}

.about-text-box p{
  margin: 0 0 14px;
  line-height: 1.45;
  text-align: left;
  font-size: 1rem;
}

/* Accessibility: ensure images have alt text fallback */
img[alt=""]{opacity:0.98}
