

.hero {
  position: relative;
  width: 100%;
  max-width: 1200px;
  height: 400px;
  margin-bottom: 150px;
  margin-top: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.hero .background-text {
  position: absolute;
  top: 150px;
  left: 21%;
  font-size: 6em;
  color: var(--text-color);
  z-index: 0;
  white-space: nowrap;
  text-align: center;
  color: rgb(242, 0, 255); 
  line-height: 100%;
}

.hero canvas { 
  position: relative;
  z-index: 1;
}

.navigation { 
  width: 100%;
  max-width: 1200px;
  text-align: center;
  margin-bottom: 130px;
}

.navigation h2 {
  font-family: 'TronicaMono';
  font-size: 2.2em;
  margin-bottom: 60px;
}

.navigation ul {
  list-style: none;
  padding: 0;
}

.navigation ul li {
  margin-bottom: 30px;
}

.navigation ul li a {
  text-decoration: none;
  color: var(--text-color); 
  background-color: transparent; 
  font-size: 1.5em;
  padding: 0px;
}

.navigation ul li a:hover,
.navigation ul li a.active {
  background-color: var(--text-color); 
  color: var(--background-color);      
}

.input-info-img { 
  position: absolute;
  bottom: 40px;
  left: 50px;
  width: 250px;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
}

.logo-img { 
  position: fixed;
  top: 20px;
  right: 20px;
  width: 75px;
  height: auto;
  user-select: none;
  -webkit-user-drag: none;
  z-index: 999;
  
}



.project-content {
  padding: 20px;
  max-width: 100%;
  box-sizing: border-box;
}

.projects-navbar { 
  width: 100%;
  border: 2px solid var(--text-color);
  background: transparent;
  padding: 10px 0;
  box-sizing: border-box;
  z-index: 10;
}

.projects-navbar ul {
  list-style: none;
  display: flex;
  justify-content: space-around;
  margin: 0;
  padding: 0;
}

.projects-navbar ul li a {
  text-decoration: none;
  font-size: 1.2em;
  color: var(--text-color); 
  background-color: transparent; 
}

.projects-navbar ul li a:hover,
.projects-navbar ul li a.active {
  background-color: var(--text-color); 
  color: var(--background-color);      
}

.project_selection { 
  width: 100%;
  margin-top: 20px;
  border: 2px solid var(--text-color);
  padding: 20px;
  box-sizing: border-box;
}

.project_selection ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.project_selection ul li a {
  display: flex;
  justify-content: space-between;
  text-decoration: none;
  color: var(--text-color); 
  background-color: transparent; 
  font-size: 1.2em;
  padding: 10px 15px;
  border: 1px solid transparent;
}

.project_selection ul li a:hover,
.project_selection ul li a.active {
  background-color: var(--text-color); 
  color: var(--background-color);      
}

.project_selection ul li a .word-left,
.project_selection ul li a .word-right {
  display: block;
}

.projects-footer { 
  width: 100%;
  margin: 20px auto;
  border: 2px solid var(--text-color);
  padding: 30px 40px;
  box-sizing: border-box;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.projects-footer img {
  max-width: 100%;
  height: auto;
  display: block;
}

.projects-footer .left-img {
  width: 250px;
}

.projects-footer .right-img { 
  width: 80px;
   
}

.submenu-wrapper { 
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 600px;
  margin: 10px 0 0 auto;
  box-sizing: border-box;
}

.go-back-btn {
  border: 2px solid var(--text-color);
  background: transparent; 
  color: var(--text-color); 
  font-size: 1.2em;
  padding: 10px 15px;
  cursor: pointer;
  margin-right: 10px;
  font-family: 'TronicaMono';
}

.go-back-btn:hover,
.go-back-btn:active {
  background-color: var(--text-color); 
  color: var(--background-color);      
}

.project-submenu { 
  flex-grow: 1;
  border: 2px solid var(--text-color);
  background: transparent;
  padding: 10px;
  box-sizing: border-box;
}

.project-submenu ul {
  list-style: none;
  display: flex;
  justify-content: space-around;
  margin: 0;
  padding: 0;
}

.project-submenu ul li a {
  text-decoration: none;
  font-size: 1.2em;
  color: var(--text-color); 
  background-color: transparent; 
  transition: background-color 0.2s ease, color 0.2s ease;
}

.project-submenu ul li a:hover,
.project-submenu ul li a.active {
  background-color: var(--text-color); 
  color: var(--background-color);      
}

.title-section { 
  width: 100%;
  max-width: 100vw;
  text-align: left;
  margin: 150px 0 50px;
}

.title-section h1 {
  font-size: 1.6em;
  margin-bottom: 10px;
}

.title-section h1 span {
  color: #FF00C8; 
}

.separator {
  border: 0;
  height: 2px;
  background-color: var(--text-color);
  width: 100%;
  margin: 0 auto 30px auto;
}



.typography-section { 
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  width: 100%;
  max-width: 90vw;
  margin-top: 30px;
  align-items: start;
}

.summary-group, 
.typography-group { 
  user-select: none;
  box-sizing: border-box;
  max-width: 100%;
}

.summary-group h2,
.typography-group h2 {
  font-size: 1.6em;
  margin-bottom: 10px;
}

.summary-group{
  padding-right:100px;
}

.summary-group p {
  font-size: 0.9em;
  font-family: monospace;
  line-height: 2;
  margin-top: 20px;
}



.typography-canvas { 
  width: 100%;
  height: 400px; 
  max-width: 900px; 
  margin: 0 auto; 
  box-sizing: border-box;
  overflow: hidden;
  position: relative;
  border-radius: 20px;
  user-select: none;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2); 
  cursor: default; 
}


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


.typography-canvas.week1,
.typography-canvas.week2,
.typography-canvas.week5,
.typography-canvas.week11 {
  touch-action: none;
  -ms-touch-action: none;
}












.typography-canvas.week3 { 
  margin:50px 0 25px 0;
}

.on-screen-keyboard {
  display: none; 
  width: 100%;
  max-width: 100vw;
  margin-top: 25px;
  padding: 8px;
  box-sizing: border-box;
  border-radius: 5px;
}

.keyboard-row {
  display: flex;
  justify-content: center;
  margin-bottom: 5px;
  gap: 4px;
}
.keyboard-row:last-child { margin-bottom: 0; }
.key {
  font-family: 'TronicaMono', 'Courier New', Courier, monospace;
  font-size: 1.5em;
  font-weight: bold;
  background-color: rgba(217, 217, 217, 0.8); 
  color: var(--background-color, #0300BF); 
  border: none;
  border-radius: 4px;
  padding: 10px 0;
  margin: 0;
  min-width: 28px;
  text-align: center;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  flex: 1;
  max-width: 40px;
  transition: background-color 0.1s ease;
}
.key:active, .key.active-key-feedback {
  background-color: var(--background-color); 
  color: var(--text-color);              
}



.typography-canvas.week4 { 
  height: 250px;
}




.typography-canvas.week5{
  height:250px;
}




.typography-section.week9 { 
  grid-template-columns: 40% 60%;
}

.typography-canvas.week9 { 
  height: 400px;
  margin: 0; 
  max-width: none; 
  box-shadow: none; 
  
}




#typography-canvas.week10 { 
  width: 100%;
  height: auto;
  max-width: 700px;
  aspect-ratio: 1 / 1;
  box-sizing: border-box;
  margin: 20px auto; 
  display: block;
  border-radius: 0; 
  box-shadow: none; 
  background-color: transparent; 
  overflow: visible; 
}

#typography-canvas.week10 canvas{ 
   position: static; 
   width: 100% !important;
   height: 100% !important;
}

#arrow-controls {
  display: none; 
  margin-top: 15px;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  user-select: none;
}
.middle-arrow-row {
  display: flex;
  user-select: none;
  justify-content: center;
  gap: 30px;
  width: 100%;
}
.arrow-button {
  border: 1px solid var(--text-color, #D9D9D9);
  background-color: rgba(217, 217, 217, 0.8); 
  color: var(--background-color, #0300BF); 
  padding: 10px 0;
  width: 60px;
  height: 50px;
  text-decoration: none;
  border-radius: 8px;
  font-size: 1.8em;
  font-weight: bold;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.arrow-button:hover {
  background-color: var(--text-color, #D9D9D9); 
  color: var(--background-color, #0300BF); 
}
.arrow-button:active {
  background-color: var(--background-color); 
  color: var(--text-color);              
  transform: scale(0.95);
}

#win-content { 
  display: flex; 
  flex-direction: column;
  padding: 20px;
  background-color: var(--background-color); 
  margin-top: 20px;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s ease-in-out, visibility 0s linear 0.5s;
}
#win-content.visible {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.5s ease-in-out;
}
.win-article {
  padding-right: 15px;
  flex: 2;
  margin-bottom: 15px;
}
.win-article h2 {
  margin-bottom: 10px;
  color: var(--text-color); 
}
.win-article p {
  line-height: 1.6;
  margin-bottom: 10px;
  font-family:monospace;
  font-size: .85em;
  color: var(--text-color); 
}
.win-image {
  flex: 1;
  text-align: center;
}
.win-image img {
  max-width: 100%;
  height: auto;
  border: 2px solid #ddd;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
}
.win-image small {
  color: red;
  display: block;
  margin-top: 5px;
}

#typography-canvas-container.hidden, 
#arrow-controls.hidden { 
   display: none !important;
}




.summary-section { 
  width: 100%;
  max-width: 900px;
  margin: 0 auto 30px auto;
  box-sizing: border-box;
  user-select: none;
}
.summary-section h2 {
  font-size: 1.4em;
  margin-bottom: 15px;
  text-transform: uppercase;
  color: var(--text-color);
}
.summary-section p {
  font-size: 0.95em;
  font-family: monospace;
  line-height: 1.8;
  color: var(--text-color);
}

.interactive-project-section { 
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
}
.interactive-project-section h2 {
  font-size: 1.4em;
  margin-bottom: 20px;
  text-transform: uppercase;
  color: var(--text-color);
  text-align: center;
}

.controls-container { 
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 15px;
  margin-bottom: 30px;
  padding: 15px;
  background-color: rgba(0,0,0, 0.1);
  border-radius: 8px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.controls-container input[type="text"] {
  padding: 10px 15px;
  border: 1px solid var(--text-color);
  background-color: var(--canvas-bg-color, #f0f0e0); 
  color: var(--background-color); 
  font-family: monospace;
  font-size: 1em;
  border-radius: 4px;
  flex-grow: 1;
  min-width: 200px;
  transition: background-color 0.2s ease, color 0.2s ease; 
}
.controls-container input[type="text"]:focus { 
  background-color: var(--background-color); 
  color: var(--text-color);              
  outline: 1px solid var(--text-color);  
}

.controls-container button,
.controls-container select {
  padding: 10px 15px;
  border: 1px solid var(--text-color);
  background-color: var(--control-bg-color, rgba(217, 217, 217, 0.8)); 
  color: var(--control-text-color, var(--background-color)); 
  font-family: 'TronicaMono', monospace;
  font-size: 1em;
  cursor: pointer;
  border-radius: 4px;
  transition: background-color 0.2s ease, color 0.2s ease, transform 0.1s ease;
  text-transform: uppercase;
}
.controls-container button:hover,
.controls-container select:hover {
  background-color: var(--background-color); 
  color: var(--text-color);              
}
.controls-container button:active {
  background-color: var(--background-color); 
  color: var(--text-color);              
  transform: scale(0.98); 
}
.controls-container select {
  appearance: none;
  background-image: url('data:image/svg+xml;charset=US-ASCII,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="5" fill="%230300BF"><polygon points="0,0 10,0 5,5"/></svg>');
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 30px;
}

.typography-canvas.week11 { 
  height: 500px;
  background-color: #2a3a6a; 
  background-image: url('../img/blueprint_texture.jpg');
  background-repeat: repeat;
  background-size: contain;
  
}









.rationale-group p{
color: var(--text-color);
  font-size:.85em;
  font-family: monospace;
  line-height: 1.8;
  padding-top:20px;
}

.hidden {
  display: none !important; 
}

.typography-section.originalWork{
  margin-top:125px;
}


.card{
  display:inline-block;        
  position:relative;           
  perspective:600px;
  cursor:pointer;
  right:-25%;
}


.card img{
  display:block;               
  width:50%;                  
  height:auto;                 
  backface-visibility:hidden;
  transition:transform .5s;
  border:2px white solid;
}


.card .back{
  position:absolute;
  inset:0;                     
  transform:rotateY(180deg);   
}


.card.flip .front{ transform:rotateY(180deg); }
.card.flip .back { transform:rotateY(360deg); }   





@media (max-width: 768px) {
  .typography-section { 
    grid-template-columns: 1fr;
    justify-items: center;
  }
  .summary-group,
  .typography-group {
    width: 100%;
    text-align: left;
      padding-right:0px;
  }
  .summary-group { 
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    max-width: 90%; 
  }

  .controls-container { 
    flex-direction: column;
    align-items: stretch;
  }

  .typography-canvas:not(#typography-canvas.week10):not(.typography-canvas.week11) { 
    height: 250px; 
  }
   .typography-canvas.week11 { 
      height: 400px;
   }
   

  #win-content { 
    flex-direction: column;
  }
  .win-article { margin-bottom: 15px; padding-right: 0;}
  .win-image { padding-left: 0; }
}


@media (max-width: 490px) {
  html, body {
    overflow-x: hidden;
    width: 100vw;
  }

  
  .hero { margin-bottom: 0px; height: 400px; }
  .hero .background-text { top: 80px; left: 0; font-size: 5.5em; }
  .hero canvas { touch-action: none; -ms-touch-action: none; }
  .navigation { margin: 50px 0; }
  .navigation h2 { font-size: 2em; margin-bottom: 60px; }
  .navigation ul li { margin-top: 30px; }
  .navigation ul li a { font-size: 1.4em; margin-bottom: 40px; }
  .input-info-img { display: none; }
  .logo-img { width: 65px; }

  
  .projects-navbar ul li a { font-size: 1em; }
  .projects-navbar ul li:nth-child(2) { display: none; } 
  .project_selection ul li a { font-size: 1em; }
  .projects-footer .left-img { width: 180px; }
  .projects-footer .right-img { width: 70px; }

  
  .title-section { margin-top: 80px; margin-bottom: 30px; }
  .title-section h1 { font-size: 1.4em; }
  .summary-section h2,
  .interactive-project-section h2,
  .summary-group h2,
  .typography-group h2 { 
      font-size: 1.2em;
  }

  
   .typography-canvas:not(#typography-canvas.week10):not(.typography-canvas.week11) { 
    height: 250px; 
  }
   .typography-canvas.week11 { 
      height: 350px;
   }
   


  
  .on-screen-keyboard {
    display: block !important; 
  }

  
  #arrow-controls {
    display: flex !important; 
  }
}