/*
$$\   $$\ $$\   $$\  $$$$$$\   $$$$$$\ $$$$$$$$\  $$$$$$\  $$$$$$$\  $$$$$$\ 
$$ | $$  |$$ |  $$ |$$  __$$\ $$  __$$\\__$$  __|$$  __$$\ $$  __$$\ \_$$  _|
$$ |$$  / $$ |  $$ |$$ /  \__|$$ /  $$ |  $$ |   $$ /  $$ |$$ |  $$ |  $$ |  
$$$$$  /  $$ |  $$ |\$$$$$$\  $$ |  $$ |  $$ |   $$ |  $$ |$$$$$$$  |  $$ |  
$$  $$<   $$ |  $$ | \____$$\ $$ |  $$ |  $$ |   $$ |  $$ |$$  __$$<   $$ |  
$$ |\$$\  $$ |  $$ |$$\   $$ |$$ |  $$ |  $$ |   $$ |  $$ |$$ |  $$ |  $$ |  
$$ | \$$\ \$$$$$$  |\$$$$$$  | $$$$$$  |  $$ |    $$$$$$  |$$ |  $$ |$$$$$$\ 
\__|  \__| \______/  \______/  \______/   \__|    \______/ \__|  \__|\______|
                                                                             
                                                                             
                                                                             
 $$$$$$\   $$$$$$\  $$\   $$\ $$\   $$\  $$$$$$\  $$\   $$\ $$\   $$\        
$$  __$$\ $$  __$$\ $$$\  $$ |$$ | $$  |$$  __$$\ $$ | $$  |$$ |  $$ |       
$$ /  \__|$$ /  $$ |$$$$\ $$ |$$ |$$  / $$ /  $$ |$$ |$$  / $$ |  $$ |       
\$$$$$$\  $$$$$$$$ |$$ $$\$$ |$$$$$  /  $$ |  $$ |$$$$$  /  $$ |  $$ |       
 \____$$\ $$  __$$ |$$ \$$$$ |$$  $$<   $$ |  $$ |$$  $$<   $$ |  $$ |       
$$\   $$ |$$ |  $$ |$$ |\$$$ |$$ |\$$\  $$ |  $$ |$$ |\$$\  $$ |  $$ |       
\$$$$$$  |$$ |  $$ |$$ | \$$ |$$ | \$$\  $$$$$$  |$$ | \$$\ \$$$$$$  |       
 \______/ \__|  \__|\__|  \__|\__|  \__| \______/ \__|  \__| \______/        
                                                                             
                                                                             
                                                                             
*/

/* IMPORT FONT AWESOME CSS */
@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css);

/* ROOT VARIABLES,
YOU CAN CHANGE COLORS & WEIGHT HERE! */
:root {
  /* MAIN BACKGROUND COLOR */
  --main-bg-color: #006D4D;
  /* MAIN FONT SETTINGS */
  --main-font-size: 20px;
  --main-font-color: #DE6A1C;
  /* TOP TITLE LINK COLOR */
  --title-color: #1cde33;
  /* LOGO SVG FILL & STROKE COLOR */
  --logo-fill-color: transparent;
  --logo-stroke-color:  #DE6A1C;
  --logo-width: 100%;
  --drop-shadow-r: transparent;  /* R (黒) */
  --drop-shadow-c: transparent;  /* C (= G+B) (白) */
  --drop-shadow-x: transparent;  /* 白のにじみ (赤) */
  /* LOGO-2 SVG FILL & STROKE COLOR */
  --logo-fill-color-2: #000000;
  --logo-stroke-color-2: transparent;
  --logo-width-2: 35%;
  --align-left: left;
  --drop-shadow-r-2: transparent;  /* R (黒) */
  --drop-shadow-c-2: transparent;  /* C (= G+B) (白) */
  --drop-shadow-x-2: transparent;  /* 白のにじみ (赤) */
  /* LINK COLOR SETTINGS */
  --link-color: #e39d6e;
  --link-hover-color: #00ff08;
  /* SOCIAL ICON SETTINGS */
  --social-font-size: 1.5rem;
  --social-button-color: #000000;
  --social-button-hover-color: #DE6A1C;
  /* TEXT SELECTION COLOR */
  --selection-text-color: #ffffff;
  --selection-bg-color: #F24C3D;
  /* DOGGO (TOP *) COLOR */
  --doggo-color: #ff58d0;
  /* HR LINE COLOR */
  --hr-line-color: #00583f;
}


body {
  background-color: var(--main-bg-color);
  color: var(--main-font-color);
  margin: 0rem 0px 5rem 5rem;
  font-family: "VT323", monospace;
  margin: 0 auto;
  max-width: 500px;
  padding: 1rem;
}

html {
  font-size: var(--main-font-size);
}

/* DotGothic16 for spacial page contents only */
.dotgothic16-ja {
  font-family: 'DotGothic16', sans-serif;
  font-size: 0.7rem;
}

/* DOGGO (Dot) SETTING */
.doggo {
  animation: flash 0.3s linear infinite;
  margin: 2.2rem 0 1rem 0;
  color: var(--doggo-color);
  display: inline-block;
  _display: inline;
}

@keyframes flash {
  50%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.4;
  }
}

/* SELECTION COLOR */
::selection {
  color: var(--selection-text-color);
  background-color: var(--selection-bg-color);
}

/* IMAGE */
img {
  display: block;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}


/* HEADING */
h1 {
  font-size: 2rem;
  margin: 1.5rem 0 1rem 0;
}

h2 {
  font-size: 1.3rem;
  margin: 0.5rem 0 0.5rem 0;
}

h3 {
  font-size: 1.3rem;
  margin: 3rem 0 1rem 0;
}

h4 {
  font-size: 1.1rem;
  margin: 1.2rem 0 0.3rem 0;
}

h5 {
  font-size: 0.9rem;
  margin: 1.7rem 0 0.7rem 0;
}

h6 {
  font-size: 0.5rem;
  margin: 0.5rem 0 0.5rem 0;
}

hr {
  border: none;
  border-top: 1.5px solid var(--hr-line-color);
  margin: 1rem 0;
}

ul {
  list-style-type: square;
  margin-inline-start: -0.4rem;
  margin-block-start: 0em;
  margin-block-end: 1em;
}

/* PARAGRAPH */
p {
  margin: 0.2rem 0 0.3rem 0;
}

/* LINK & HOVER */
a:any-link {
  color: var(--link-color);
  text-decoration: none;
}

a:hover {
  color: var(--link-hover-color);
}

a:hover {
  color: var(--link-hover-color);
}

#title:any-link {
  color: var(--title-color);
  text-decoration: none;
}

#social:any-link {
  color: var(--social-button-color);
  text-decoration: none;
}

#social:hover {
  color: var(--social-button-hover-color);
  text-decoration: none;
}

/* SOCIAL ICONS */
.social {
  list-style: none;
  margin: 1rem 0 2rem 0;
  padding: 0;
}

.social > li {
  font-size: var(--social-font-size);
  display: inline-block;
  padding-inline-end: 8px;
}

/* FOOTER & COPYRIGHT */
.footer {
  text-align: right;
  font-size: 0.7rem;
  margin-top: 4rem;
}

/* RESPONSIVE */
/* SMART PHONE */
@media screen and (max-width: 768px) {
  h1 {
    margin: 1rem 0rem;
    font-size: 2.1rem;
  }

  h2 {
    font-size: 1.1rem;
  }

  .social > li {
    font-size: 1rem;
  }
}

/* TABLET */
@media screen and (min-width: 768px) {
}

/* DESKTOP */
@media only screen and (min-width: 767px) and (max-width: 1280px) {
}

#logo-slot svg{
  /* 既存: fill: currentColor; filter: url(#inkBleed); など */
  width: var(--logo-width);
  height: auto;
  filter:
    url(#inkBleed)
    drop-shadow(1px 0 0 var(--drop-shadow-r))   /* R */
    drop-shadow(0 1px 0 var(--drop-shadow-c)) /* C (= G+B) */
    drop-shadow(0 0 2px var(--drop-shadow-x)); /* 白のにじみ */
}

#logo-slot svg path {
  fill: var(--logo-fill-color) !important;
  stroke: var(--logo-stroke-color) !important;
}

#logo-slot-2 svg{
  /* 既存: fill: currentColor; filter: url(#inkBleed); など */
  width: var(--logo-width-2);
  height: auto;
  display: block;
  margin-left: auto;
  margin-top: 0.5rem;
  filter:
    url(#inkBleed)
    drop-shadow(1px 0 0 var(--drop-shadow-r-2))   /* R */
    drop-shadow(0 1px 0 var(--drop-shadow-c-2)) /* C (= G+B) */
    drop-shadow(0 0 2px var(--drop-shadow-x-2)); /* 白のにじみ */
}

#logo-slot-2 svg path {
  fill: var(--logo-fill-color-2) !important;
  stroke: var(--logo-stroke-color-2) !important;
}

/* IMAGE GALLERY */
.image-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 0.5rem;
  margin: 1rem 0;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid var(--hr-line-color);
  transition: transform 0.2s ease, border-color 0.2s ease;
}

.gallery-item:hover {
  transform: scale(1.05);
  border-color: var(--link-hover-color);
}

.gallery-thumbnail {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
}

/* MODAL */
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  cursor: pointer;
}

.modal-content {
  display: block;
  margin: auto;
  max-width: 90%;
  max-height: 90%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  animation: zoom 0.3s;
}

@keyframes zoom {
  from {
    transform: translate(-50%, -50%) scale(0.5);
  }
  to {
    transform: translate(-50%, -50%) scale(1);
  }
}

.modal-close {
  position: absolute;
  top: 20px;
  right: 35px;
  color: var(--link-hover-color);
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
  transition: color 0.2s ease;
  z-index: 1001;
}

.modal-close:hover,
.modal-close:focus {
  color: var(--selection-bg-color);
}

.modal-prev,
.modal-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: var(--link-hover-color);
  font-size: 60px;
  font-weight: bold;
  cursor: pointer;
  padding: 16px;
  user-select: none;
  transition: color 0.2s ease, background-color 0.2s ease;
  z-index: 1001;
}

.modal-prev:hover,
.modal-next:hover {
  color: var(--selection-bg-color);
  background-color: rgba(0, 0, 0, 0.5);
}

.modal-prev {
  left: 10px;
}

.modal-next {
  right: 10px;
}

/* RESPONSIVE FOR GALLERY */
@media screen and (max-width: 768px) {
  .image-gallery {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-thumbnail {
    height: 100px;
  }

  .modal-prev,
  .modal-next {
    font-size: 40px;
    padding: 8px;
  }

  .modal-prev {
    left: 5px;
  }

  .modal-next {
    right: 5px;
  }
}