

/* CHANGES
 * menus.css => added :target formatting
 * print.css => added #home-page, #show-page display: block !important
 * menus.css => increased buffer on #samples-target, #praise-target, etc.
 * index.html => inline button targets updated to pure anchors
 * 
 * */
/** SPACE FORMATTING **/

/*
  article => .page
  section => .card
  figure  => .tile
*/

:root {
  --padding: 1.5rem;
  --page-gap: 2.0rem;
  --border-radius: 4px;
  --round-radius: 20px;
  /* x-offset | y-offset | blur | spread | color */
  --box-shadow: 0 4px 4px -1px rgba(0, 0, 0, 0.2);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--padding);
  padding: var(--padding);
  padding-top: calc(var(--padding) * 2);
}

/* max-width equiv less-than */
@media (max-width: 500px) {
  body {
    padding: 0;
  }
}

main {
  display: flex;
  flex-direction: column;
  gap: var(--padding);
}

article {
  display: flex;
  flex-direction: column;
  gap: var(--padding);
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
}

section {
  display: flex;
  flex-wrap: wrap;
  gap: var(--padding);
  padding: var(--padding);
}

section.space { 
  /* cannot be .center */
  justify-content: space-around;
}

section.center { 
  /* cannot be .space */
  justify-content: center; 
  align-items: center;
}

section.equal figure {
  /* equal child widths */
  flex: 1;
  /*min-width: 220px;*/
  min-width: 300px;
}

section:has(.banner) {
  padding: var(--padding) 0;
}

figure {
  display: flex;
  flex-direction: column;
}

figure.space {
  /* cannot be .center */
  justify-content: space-around;
}

figure.center {
  /* cannot be .space */
  justify-content: center; 
  align-items: center;
}

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
  gap: var(--padding);
}

.gallery figure {
  padding: var(--padding);
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
}

.gallery img {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--round-radius);
}

/* min-width equiv greater-than */
@media (min-width: 800px) {
  .nine-tiles {
    /* Creates 3 equal columns, rows auto */
    grid-template-columns: repeat(3, 1fr);
  }
}

:has(.banner) {
  width: 100%;
}

.banner {
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 2.88/1;
}

/* feature images */
.image {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
}

/* .portrait .headshot */
.thumbnail {
  width: 100%;
  max-width: 238px;
  min-width: 200px;
  height: auto;
  aspect-ratio: 0.8/1;
  object-fit: cover;
  /*object-position: top center;*/
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
}

/* image opaque mask */
:has(.mask) {
  position: relative;
  background-size: cover;
  /*background-position: top right;*/
  /*background-position: center right;*/
}

/* full-page background image mask */
article:has(> .mask) * {
  z-index: 10;
}

/* stand-alone inline image mask */
figure:has(.mask) .mask {
  z-index: 10;
}

.mask {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  border-radius: var(--border-radius);
  background-color: var(--image-mask-color);
}

.line {
  white-space: nowrap;
}

.hidden {
  display: none;
}



/* COLOR AND TYPE FORMATTING */

:root {
  
  /* pale lavender */
  /*--color: #d8d8f5;*/

  /* dusky blue */
  --quote-tile-color: #573e6d;
  
  /* gold (h1, h2, h3) */
  --heading-color: #ffbf00;
  
  /*--text-color: #f8fafc;*/
  /*#fdfdfd*/
  --text-color: #fff;
  
  /* rose purple */
  /*--accent-color: #dc67be;*/
  
  /* light lavendar */
  /*--accent-color: #b994ea;*/
  
  /* dark lavender */
  --accent-color: #a986a9;
  
  /* dark violet */
  --background-color: #450069;
  
  /* indigo blue */
  /*--background-color: #51087e;*/
  
  /* dusky plum */
  /*--image-mask-color: #542b54cc;*/
  /*--image-mask-color: #4c063b4d;*/
  --phoenix-mask-color: #77065b51;
  
  --rocknroll-mask-color: #542b54b3;
  
  /* powder blue (gradient left) */
  --gradient-left-color: #6fb6ec;
  
  /* lavender (gradient right) */
  --gradient-right-color: #b994ea;
  
}


/*
section, figure, a {
  border: 2px solid red;
}
*/


html {
  font-size: 16px;
}

body {
  font-family: Roboto, sans-serif;
  background-color: var(--background-color);
  color: var(--text-color);
  font-size: 1.15rem;
  line-height: 1.6;
}

.accent {
  color: var(--accent-color);
  font-size: 1.5rem;
  font-weight: normal;
  letter-spacing: 0.05rem;
}

h1, h2, h3, h4,
.heading {
  color: var(--heading-color);
}

p {
  margin: 0 0 0.8rem;
}

ul {
  list-style-type: none;
}

.gradient {
  background: linear-gradient(to right, var(--gradient-left-color), var(--gradient-right-color));
  border-bottom-left-radius: var(--border-radius);
  border-bottom-right-radius: var(--border-radius);
}

.gallery > figure {
  background-color: var(--background-color);
}

.gallery.quotes > figure {
  border-left: 0.5rem solid var(--heading-color);
  background-color: var(--quote-tile-color);
}



/* ONE-OFF ELEMENT FORMATTING */

/*** INDEX.HTML ***/

/*#home-hero {}*/

/*#about-me {}*/

#phoenix-mask {
  background-color: var(--phoenix-mask-color);
}

#what-i-do {
  background-color: var(--accent-color);
}

#what-i-do .featured-text {
  font-size: 2.5rem;
  font-weight: bold;
}

#heliosail {
  width: 100%;
  height: auto;
  aspect-ratio: 1.35 / 1;
  object-fit: cover;
}

/*#clients-and-collaborators {}*/

#clients-and-collaborators .links-para {
  display: flex;
  justify-content: space-around;
}

/* max-width equiv less-than */
@media (max-width: 800px) {
  #clients-and-collaborators .links-para {
    flex-direction: column;
    align-items: center;
    gap: 1.0rem;
  }
}

#studio-gear {
  background-image: url("../images/rocknroll.jpg");
  /*background-position: top right;*/
  background-size: cover;
  background-position: center;
}

#rocknroll-mask {
  background-color: var(--rocknroll-mask-color);
}

/*#contact {}*/

/*** SHOWCASE.HTML ***/

/*#showcase-hero {}*/

#showcase-hero .has-h1 {
  justify-content: flex-start;
  gap: 5.0rem;
  align-items: center;
}

#showcase-hero .last-para {
  font-size: 1.5rem;
  text-align: center;
}

#working-with-shylee {
  background-color: var(--accent-color);
}

#working-with-shylee .callout {
  font-size: 1.5rem;
}

#working-with-shylee .callout .first-para {
  color: var(--background-color);
  text-align: center;
}

/*#vocal-samples {}*/

#vocal-samples .first-para {
  margin-top: 1.5rem;
}

#samples {
  gap: 3.5rem;
}

#samples figure {
  justify-content: center;
  align-items: center;
}

#samples figure audio {
  width: 100%;
  padding-left: 5%;
}

/*#wave-banner {}*/

#wave-banner .caption {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 200px;
}

#wave-banner .dynamo-heading {
  padding: var(--padding);
}

/*#asmr-samples {}*/

/*#contact {}*/

#copyright {
  font-size: 1.0rem;
}



/** MENUS BUTTONS AND LINKS FORMATTING **/

/* if target is #contact show home page */
body:has(#contact:target) #home-page,
/* if no target, show home page */
body:not(:has(:target)) #home-page {
  display: block;
}

/* turn off home page if no child target */
#home-page:not(:has(:target)) {
  display: none;
}

/* turn off show page if no child target */
#show-page:not(:has(:target)) {
  display: none;
}

/* #anchor target buffer for fixed nav */
html {
  scroll-padding-top: 3.5rem;
  scroll-behavior: smooth;
}

/* min-width equiv greater-than */
/* hide burger menu / show menu items */
@media (min-width: 500px) {
  
  #mobile-menu {
    display: none;
  }
  
  nav ul {
    column-gap: 2vw;
    border-top: 1px solid var(--background-color);
    border-bottom: 1px solid var(--background-color);
  }
  
  nav a {
    padding: 0.5rem 1.5rem;
    border-left: 1px solid var(--background-color);
    border-right: 1px solid var(--background-color);
  }
}

/* max-width equiv less-than */
/* show burger menu / hide menu items */
@media (max-width: 500px) {
  
  #menu-items {
    display: none;
  }
  
  nav li, nav a {
    width: 100%;
  }
  
  nav ul {
    flex-direction: column;
  }
  
  nav a {
    padding: 1.0rem 1.5rem;
    text-align: center;
    font-weight: 1000;
    -webkit-user-select: none; /* Safari */
    user-select: none;
    border-bottom: 1px solid var(--background-color);
  }
  
  #toggle-menu:not(:checked) ~ #mobile-menu #menu-closer {
    display: none;
  }
  
  #toggle-menu:checked ~ #mobile-menu #menu-opener {
    display: none;
  }
  
  #toggle-menu:checked ~ #menu-items {
    display: block;
  }
  
  /* custom buffer for mobile menu height */
  header {
    margin-top: 3.0rem;
  }
}

#toggle-menu {
  display: none;
}

nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
}

nav ul {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--gradient-right-color);
  box-shadow: var(--box-shadow);
  list-style-type: none;
}

nav a {
  display: inline-block;
  /*padding: 1.0rem 1.5rem;*/
  font-size: 1.0rem;
  letter-spacing: 0.05rem;
  /*color: var(--background-color);*/
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.2s ease-out, opacity 0.2s ease-out;
}

nav a:hover {
  color: var(--background-color);
  background-color: var(--heading-color);
  opacity: 0.6;
}

p:has(.button) {
  text-align: center;
}

.social-icons {
  display: flex;
  flex-direction: row;
  /*justify-content: space-around;*/
  /*justify-content: center;*/
  justify-content: flex-start;
  padding-top: var(--padding);
  gap: var(--padding);
}

.social-icons a {
  width: 50px;
  height: 50px;
  background-size: contain;
  box-shadow: var(--box-shadow);
  transition: background-image 0.2s ease-out, box-shadow 0.2s ease-out, opacity 0.2s ease-out;
}

.social-icons a:hover {
  box-shadow: none;
  opacity: 0.6;
}

.social-icons a.linkedin {
  background-image: url("../images/icon-linkedin-purple.png");
}

.social-icons a.linkedin:hover {
  background-image: url("../images/icon-linkedin-gold.png");
}

.social-icons a.phone {
  background-image: url("../images/icon-phone-purple.png");
}

.social-icons a.phone:hover {
  background-image: url("../images/icon-phone-gold.png");
}

.social-icons a.email {
  background-image: url("../images/icon-email-purple.png");
}

.social-icons a.email:hover {
  background-image: url("../images/icon-email-gold.png");
}

.button {
  cursor: pointer;
  display: inline-flex;
  /*width: fit-content;*/
  height: 2.5rem;
  padding: 0 1.5rem;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  border: 1px solid var(--background-color);
  font-size: 1.0rem;
  letter-spacing: 0.05rem;
  color: var(--background-color);
  background-color: var(--gradient-right-color);
  border-radius: var(--round-radius);
  box-shadow: var(--box-shadow);
  transition: background-color 0.2s ease-out, box-shadow 0.2s ease-out, opacity 0.2s ease-out;
}

.button:hover {
  color: var(--background-color);
  background-color: var(--heading-color);
  box-shadow: none;
  opacity: 0.6;
}

a {
  text-decoration: none;
  color: var(--text-color);
}

a:hover {
  color: var(--heading-color);
}




/** PRINT FORMATTING **/

@media print {
  
  @page {
    size: landscape;
    margin: 0.5in 0.15in;
  }
  
  body {
    background-color: #fff;
    color: #000;
  }
  
  #home-page,
  #show-page {
    display: block !important;
  }
  
  nav, .button {
    display: none;
  }
  
  a {
    color: #000;
  }
  
  .page-break {
    break-after: page;
  }
  
  /*
  h1, h2, h3 {
    break-after: avoid;
  }
  */
  
  #heliosail,
  #koi-banner {
    display: none;
  }
  
  #showcase-hero img {
    display: none;
  }
  
  #samples {
    gap: 0.5rem;
  }
  
  .social-icons {
    display: none;
  }
  
  .mask {
    display: none;
  }
}