@charset "utf-8";
address,
article,
aside,
button,
blockquote,
body,
dd,
dialog,
dl,
dt,
fieldset,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
li,
nav,
ol,
p,
pre,
section,
td,
th,
tr,
ul {
  margin: 0;
  padding: 0;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}


body {
  background: #ebece7;
  color: #2b2209;
  margin: 0;
  padding: 0;
  font-family: "AGB1";
  width: 100vw !important;
  overflow-x: hidden;
  height:auto;	
  line-height: 0;
  touch-action: manipulation !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
	

@font-face {
  font-family: "AGB1";
  src: url("ABCArizonaText-Regular.otf")
    format("truetype");
}

@font-face {
  font-family: "RM1";
  src: url("ABCArizonaText-Regular.otf")
    format("truetype");
}

@font-face {
  font-family: "PPMono";
  src: url("ParnasoPetit-Mono.otf")
    format("opentype");
}


a {color: #2b2209; text-decoration:none;}

.btn:focus {
  outline: none !important;
  box-shadow: none !important;
}

::-webkit-scrollbar {
  display: none !important; 
  width: 0px !important;	
  opacity: 0 !important; 	
}

html {
    -webkit-text-size-adjust: 100%; /* Prevent font scaling in landscape while allowing user zoom */
}



.transition-fade {
    transition: .0s;
    opacity: 1;
	/*transition-delay: .3s;*/
}

html.is-animating .transition-fade {
    opacity: 0;
}



.lazyload,
.lazyloading {
	opacity: 0;
}
.lazyloaded {
	opacity: 1;
	transition: opacity 300ms;
}


h1 {
  font-family: "AGB1";
  line-height: 1em;
  font-weight:normal;
  	
}

h2 {
  font-family: "RM1";
   font-size:1.25em;
   line-height:1.2em;
    font-weight:normal;
  	
}

h3 {
  font-family: "RM1";
   font-size:15px;
   line-height:1.2em;
    font-weight:normal;
  	
}

.piller {
  font-family: "RM1";
    font-size:1.5em;
   line-height:1.2em;
   font-weight:normal;
  	
}

.logoType{
  font-size:4vh;	
  font-family: "AGB1";
  line-height: 1em;
  letter-spacing:-.01em;	 
  font-weight:normal;
  text-transform:uppercase;	
  	
}


.container {
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
  scroll-snap-align: center;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change:transform;	
	
}




.caption1 {
  display: none;
}

.caption2 {
  display: none;
}


.microType{
  font-family: "RM1";
   font-size:1.5vw;
   line-height:1.2em;
}

.menuFace {
  font-family: "RM1";
   font-size:1vw;
   line-height:1em;
   letter-spacing:.1em;
	text-transform:uppercase;
	transition: color 0.3s ease;
}



.descripType{

 font-family: "RM1";
   font-size:1.15vw;
   line-height:1.5em;
   letter-spacing:.1em;
	text-transform:uppercase;
	
	
}	

.mediumType{
  
   font-size:5.5vw;
   line-height:1em;
   letter-spacing:.3em;
   text-transform:uppercase;
   text-align:center;	
}


.largeType{
  
   font-size:6.5vw;
   line-height:1em;
   letter-spacing:.4em;
	text-transform:uppercase;
}


.xlargeType{
  
   font-size: 11.5vw;
   line-height: 1em;
   text-transform:uppercase;
}

.hugeType{
  
   font-size: 12vw;
   line-height: 1em;
   letter-spacing:.06em;	
   text-transform:uppercase;
	color: #cccbbe;
}


.logoHolder {
   white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
	will-change: transform;
}


.block {
      white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
	opacity:0;
    }


.container .block, 
.container2 .block {
  opacity: 0;
}

.primaryLogo {position:fixed; top:0; left:0; z-index:99999 !important; height:100vh; width:100vw; pointer-events:none; display:flex !important; align-items:center; justify-content:center;}


.projectTitles {width:70vw; height:80vh;}
.projectTitles2 {width:70vw; height:100vh;}


.descrContain {
	width:40vw; height:auto; padding-top:20vh; padding-bottom:20vh;
}

.captioner1 {
  display: none;
}

.slides-container {
    position: relative;
    overflow: hidden; 
    display: flex;
    height: 100vh;
    width: 100vw; /* Changed from 75vw to 100vw */
    will-change: transform; 
}

.slides-inner {
    position: absolute;
    top: 0;    
    left: 0;
    height: 100%;
    width: 100vw;  
    overflow: hidden;
}

/* The flex arena remains the same */
.random-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    display: flex; 
    box-sizing: border-box;
}

/* 1. Lock the wrapper strictly to 50vw */
.slide {
    position: relative;
    display: flex;
    flex-direction: column; 
    align-items: flex-start;
    height: auto;
    width: 60vw; 
	padding:3em;
}

/* 2. Force the image to respect the 50vw wrapper */
.slide img {
    object-fit: contain;
    width: 100%; 
    height: auto;   
    max-height:80dvh;	
}

/* 3. Force the video to respect the 50vw wrapper */
.slide video {
    object-fit: cover; 
    width: 100%; 
    height: auto; 
    mix-blend-mode: lighten;
}
/* =========================================
   PLACEMENT CLASSES
   ========================================= */

.placement-1 { align-items: flex-start; justify-content: flex-start; }
.placement-2 { align-items: flex-start; justify-content: flex-end; }
.placement-3 { align-items: flex-end; justify-content: flex-start; }
.placement-4 { align-items: flex-end; justify-content: flex-end; }
/*.placement-5 { align-items: center; justify-content: center; }*/
	
/* Top Left */
.placement-1 .slide img { 
    object-position: left top; 
}

/* Top Right */
.placement-2 .slide img { 
    object-position: right top; 
}

/* Bottom Left */
.placement-3 .slide img { 
    object-position: left bottom; 
}

/* Bottom Right */
.placement-4 .slide img { 
    object-position: right bottom; 
}

.prevButton{
  position:absolute;
  left:0;
  top:0;
  width:10vw;
  height:100%;
  opacity:0;
  z-index:10;
  cursor:pointer;
}

.nextButton{
   position:absolute;
  right:0;
   top:0;
  width:10vw; 
  height:100%;
  opacity:0;
  z-index:10;
  cursor:pointer;
}

.stickyContainer {
   z-index:100;
  will-change: transform, opacity;
}


.bottomSet {opacity:0; position:fixed; bottom:2em; left:0; width:97vw; margin-left:1.5vw; display:flex; justify-content:space-between; flex-direction:column; z-index:0; pointer-events:auto !important;}



 /*
  * 
  * 
  * MAINFRAME
  * 
  * 
  * 
  */ 
  

.mainframe {
  width:100vw;	
  opacity: 1 !important;
  transition: opacity 0.25s;
}
.mainframe.is-hidden {
  width:100vw;		
  opacity: 0 !important;
}


.vertical-stack-wrapper {
	display:flex;
	flex-direction:column; 
	gap:250px;
}


.wp-media-block + .wp-media-block {
    margin-top: 250px;
	margin-bottom: 250px;
}

.wp-media-block {
    display: flex;
    width: 100vw;
}
.align-left   { justify-content: flex-start; align-items:end; }
.align-center { justify-content: center; align-items:end; }
.align-right  { justify-content: flex-end; align-items:end; }

/* Image Scaling */
.scale-small  { width: 25%; margin-left:5%; margin-right:5%; } /* Or whatever pixel value you prefer */
.scale-medium { width:40%; height:auto; object-fit:contain;  }
.scale-large  { width:40%; height:auto; object-fit:contain; }
.scale-xlarge  { width:40%; height:auto; object-fit:contain; }

/* --- New Row Mode --- */
.row-mode {
    /* Inherits display:flex and width:100vw from .wp-media-block */
    justify-content: space-between; 
    align-items: flex-end;
    padding: 0 5%; /* Optional: Adds safety gutters on the far edges */
    box-sizing: border-box;
}

/* Reset margins inside row-mode so space-between works correctly */
.row-mode img {
    margin-left: 0;
    margin-right: 0;
}

.logoTopper {
    position: fixed; 
    z-index: 9999;
}

/* Image is placement-1 (Top Left) -> Logo goes Bottom Right */
.logo-opp-1 {
    bottom: 5em;
    right: 7em;
    top: auto;
    left: auto;
}

/* Image is placement-2 (Top Right) -> Logo goes Bottom Left */
.logo-opp-2 {
    bottom: 5em;
    left: 7em;
    top: auto;
    right: auto;
}

/* Image is placement-3 (Bottom Left) -> Logo goes Top Right */
.logo-opp-3 {
    top: 5em;
    right: 7em;
    bottom: auto;
    left: auto;
}

/* Image is placement-4 (Bottom Right) -> Logo goes Top Left */
.logo-opp-4 {
    top: 5em;
    left: 7em;
    bottom: auto;
    right: auto;
}




.imgMode {mix-blend-mode:multiply;}
.backgroundCC {background: #ebece7;}

.navContain {
  z-index: 99999;
  position: fixed;
  bottom: 30px;
  left: 0;
  width: 100vw;
  height: auto; /* Changed from 100vh so it doesn't block the screen */
  display: flex;
  align-items: center;
  justify-content: center;
}

.pillMenu {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 18px 16px;
}

.pillMenu__rail {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 44px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(100px);
  overflow: hidden;
}

.pillMenu__item {
  appearance: none;
  border: 0;
  background: transparent;
  opacity: 0.3;
  padding: 0px 0px;
  margin: 0px 10px;
  cursor: pointer;
  font-family: "RM1" !important;
  font-size:1em;
  font-weight: normal;
}

.pillMenu__item:hover {
  color: #222;
  opacity: 1;
  transition: opacity 0.3s ease;
}

.pillMenu__item.is-active {
  color: #222;
  opacity: 1;
}

.pillMenu__item:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.35);
  outline-offset: 6px;
}

/* underline cursor */
.pillMenu__underline {
  position: absolute;
  left: 0;
  bottom: 10px;
  height: 1px;
  background: #222;
  border-radius: 999px;
  transform: translate3d(0, 0, 0);
  will-change: transform, width;
  pointer-events: none;
  opacity: 0;
}

.section {
  position: relative;
  height:auto;	
  min-height: 70vh;
  width: 80vw;
  padding-left:10vw;	
  display:flex; 
  align-items: flex-start;
  justify-content: center;	
  flex-direction: column;	
  /*background: red;*/
}

.sectionALT {
  position: relative;
  height:auto;	
  min-height: 70vh;
  gap: 20px; /* Changed from column-gap to gap */
  width: 80vw;
  padding-left: 10vw;	
  display: flex; 
  align-items: flex-start;
  justify-content: center;	
  flex-direction: column;
  /*background: red;*/
}

.sectionALT.last-section {
  padding-bottom: 50vh;	
  padding-top: 20vh;		
  min-height: 70vh;
	
}

.fader {opacity:0;}





.video-module {
  position: relative;
}

.top-right-close-btn {
  position: absolute;
  top: 2em;
  right: 2em;
  z-index: 100; /* Make sure it sits above the video/modal */
  cursor: pointer;
  /* Add your custom button styles here */
}

.video-trigger {
  cursor: pointer;
  display: inline-block;
  transition: opacity 0.2s ease;
}

.video-trigger:hover {
  opacity: 0.7;
}

.player-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100dvh;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  /* GSAP handles toggling these properties */
  pointer-events: none; 
  opacity: 0; 
  background: #ebece7 !important;
}

/* --- PLAYER CONTAINER --- */

.player {
  /* Controls the size of the video inside the fixed popup */
  width: 85vw !important;;
  max-width: none !important;
  max-height: 100dvh;	
  position: relative; 
  overflow: hidden; 
}

/* --- VIDEO & CANVAS LAYERS --- */

.video {
  width: 100%;
  height: auto; /* Changed to auto so it scales proportionately in the modal */
  display: block;
  object-fit: cover;
}

.video-frame {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  display: none;
  z-index: 10;
}

/* --- CONTROLS --- */

.controlHolder {
  background: none !important;
  position: absolute;
  bottom: 4vh; /* Lifted slightly off the bottom edge */
  left: 50%;
  transform: translateX(-50%); /* This perfectly centers the absolute container */
  width: 80%; /* Determines the width of the progress bar */
  display: flex;
  flex-direction: column; /* Stacks the progress bar on top of the buttons */
  align-items: center;
  z-index: 30;
}

.controls {
  width: 100%;
  display: flex;
  justify-content: center;
  padding-top: 1.5vh;
}

.time {
  gap: 2.5vw; /* This applies clean, even spacing between all buttons and timers */
  width: 100%; 
  display: flex;
  align-items: center;
  justify-content: space-between;	
}

/* Ensure the text elements match the buttons and don't have weird default margins */
.timer, .duration {
  margin: 0;
  font-size: 1.25vw; 
  font-family: "PPMono" !important;	
  font-weight: 300;
  color: #ebece7;
  line-height: 1.4em;
  letter-spacing:-0.05em;		
}

.progressSVG {
  position: relative;
  display: block;
  width: 100%;
  height: 5px;
  color: #ebece7;	
  cursor: pointer;
}

.track {
  vector-effect: non-scaling-stroke;
  stroke: #ebece7;
  stroke-width: 1px;
}



/* --- BUTTONS --- */

button {
  opacity: 0.2; /* Bumped this up slightly from 0.1 so they are visible before hover, adjust as needed */
  padding: 0;
  margin: 0;
  border: none;
  outline: none;
  background: none;
  cursor: pointer;
  font-family: "PPMono" !important;
  color: #ebece7;
  font-size: 1.25vw;
  font-weight: 300;
  line-height: 1.4em;
  letter-spacing:-0.05em;	
  transition: opacity 0.2s ease;
}

button:hover {
  opacity: 1;
}

/* Ensure specific buttons inherit the base button styles */
.playPause, .stop, .closeBtn, .muteToggle {
  /* Properties inherited from the generic button selector above */
}



@media only screen and (max-height: 1000px) {

h2 {
  font-family: "RM1";
   font-size:1em;
   line-height:1.2em;
    font-weight:normal;
  	
}
	
.pillMenu {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 0px 0px;
}	
	
.navContain {
  z-index: 9999;
  position: fixed;
  bottom: 0px;
  left: 0;
  width: 100vw;
  height: auto; /* Changed from 100vh so it doesn't block the screen */
  display: flex;
  align-items: flex-end;
  justify-content: center;
}	
	
.player {
  /* Controls the size of the video inside the fixed popup */
  width: 70vw !important;
  max-width: none;
  max-height: 80dvh;	
  position: relative; 
  overflow: hidden; 
}	
	
.slide {
    position: relative;
    display: flex;
    flex-direction: column; 
    align-items: flex-start;
    height: auto;
    width: 55vw; 
	padding:1em;
}	
	
.section {
  position: relative;
  height:auto;	
  min-height: 90vh;
  width: 80vw;
  padding-left:10vw;	
  display:flex; 
  align-items: flex-start;
  justify-content: center;	
  flex-direction: column;	
  /*background: red;*/
}

.sectionALT {
  position: relative;
  height:auto;	
  min-height: 90vh;
  gap: 20px; /* Changed from column-gap to gap */
  width: 80vw;
  padding-left: 10vw;	
  display: flex; 
  align-items: flex-start;
  justify-content: center;	
  flex-direction: column;
  /*background: red;*/
}	
	
}	
	
@media only screen and (max-width: 800px) {

	
.pillMenu {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 0px 0px;
}	
	
.navContain {
  z-index: 99999;
  position: fixed;
  bottom: 0px;
  left: 0;
  width: 100vw;
  height: auto; /* Changed from 100vh so it doesn't block the screen */
  display: flex;
  align-items: flex-end;
  justify-content: center;
}	
	
	
.pillMenu__rail {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 0px;
  padding: 15px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(100px);
  overflow: hidden;
}

.pillMenu__item {
  appearance: none;
  border: 0;
  background: transparent;
  opacity: 0.3;
  padding: 0px 0px;
  margin: 0px 10px;
  cursor: pointer;
  font-family: "RM1" !important;
  font-size:14px;
  font-weight: normal;
}

.pillMenu__item:hover {
  color: #222;
  opacity: 1;
  transition: opacity 0.3s ease;
}

.pillMenu__item.is-active {
  color: #222;
  opacity: 1;
}

.pillMenu__item:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.35);
  outline-offset: 6px;
}

/* underline cursor */
.pillMenu__underline {
  position: absolute;
  left: 0;
  bottom: 10px;
  height: .75px;
  background: #222;
  border-radius: 999px;
  transform: translate3d(0, 0, 0);
  will-change: transform, width;
  pointer-events: none;
  opacity: 0;
}
	
h2 {
   font-family: "RM1";
   font-size:16px;
   line-height:1.3em;
  	
}
	
	h3 {
  font-family: "RM1";
   font-size:12px;
   line-height:1.2em;
    font-weight:normal;
  	
}

.logoType{
  font-size:4.5vh;	
  font-family: "AGB1";
  line-height: 1em;
  letter-spacing:-.01em;	 
  font-weight:normal;
  text-transform:uppercase;	
  	
}
	

.microType{
  font-family: "RM1";
   font-size:2.75vw;
   line-height:1.2em;
}
	
	
	
.descrContain {
	width:70vw; height:auto; padding-top:10vh; padding-bottom:10vh;
}
	
	
.logoHolder {
   white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
	will-change: transform;
}


.block {
      white-space: normal;
      width: 100%;
      text-align: left;
	display: flex;
  flex-direction: column;
  justify-content: space-evenly; /* distributes lines evenly */
  height: 100%;
    }	
	
	

	
.projectTitles{width:80vw; height:80vh;}	
	
.mediumType{
  
   font-size:7vw;
   line-height:1em;
   letter-spacing:.25em;
	text-transform:uppercase;
}


.largeType{
  
   font-size:8.5vw;
   line-height:1em;
   letter-spacing:.4em;
   text-transform:uppercase;
}


.xlargeType{
  
   font-size: 13.5vw;
   line-height: 1em;
   letter-spacing:0em;
	text-transform:uppercase;
}
	
	
.descripType{

 font-family: "RM1";
   font-size:2.25vw;
   line-height:1.5em;
   letter-spacing:.1em;
	text-transform:uppercase;

	
}	
	
	
.swup-slot { position: relative; height: auto;}

.transition-slide {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 108vh;
  backface-visibility: hidden;
  will-change: transform, opacity;
  transform: translateZ(0);	
}	
	
.container {
  position: sticky;
  top: 0;
  height: 100dvh;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
  scroll-snap-align: center;
  -webkit-transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  will-change:transform;
}



	
.slides-container {
    position: relative;
    overflow: hidden; 
    display: flex;
    height: 100dvh;
    width: 100vw; /* Changed from 75vw to 100vw */
    will-change: transform; 
}

.slides-inner {
    position: absolute;
    top: 0;    
    left: 0;
    height: 100%;
    width: 100vw;  
    overflow: hidden;
}

/* The flex arena remains the same */
.random-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    display: flex; 
    box-sizing: border-box;
}

/* 1. Lock the wrapper strictly to 50vw */
.slide {
    position: relative;
    display: flex;
    flex-direction: column; 
    align-items: flex-start;
    height: auto;
    width: 80vw; 
}

/* 2. Force the image to respect the 50vw wrapper */
.slide img {
    object-fit: contain;
    width: 100%; 
    height: auto;   
    max-height:80dvh;	
}

/* 3. Force the video to respect the 50vw wrapper */
.slide video {
    object-fit: cover; 
    width: 100%; 
    height: auto; 
    mix-blend-mode: lighten;
}
/* =========================================
   PLACEMENT CLASSES
   ========================================= */

.placement-1 { align-items: flex-start; justify-content: flex-start; }
.placement-2 { align-items: flex-start; justify-content: flex-end; }
.placement-3 { align-items: flex-end; justify-content: flex-start; }
.placement-4 { align-items: flex-end; justify-content: flex-end; }
/*.placement-5 { align-items: center; justify-content: center; }*/
	
/* Top Left */
.placement-1 .slide img { 
    object-position: left top; 
}

/* Top Right */
.placement-2 .slide img { 
    object-position: right top; 
}

/* Bottom Left */
.placement-3 .slide img { 
    object-position: left bottom; 
}

/* Bottom Right */
.placement-4 .slide img { 
    object-position: right bottom; 
}
	
	
.logoTopper {
    position: fixed; 
    z-index: 9999;
}

/* Image is placement-1 (Top Left) -> Logo goes Bottom Right */
.logo-opp-1 {
    bottom: 3em;
    right: 3em;
    top: auto;
    left: auto;
}

/* Image is placement-2 (Top Right) -> Logo goes Bottom Left */
.logo-opp-2 {
    bottom: 3em;
    left: 3em;
    top: auto;
    right: auto;
}

/* Image is placement-3 (Bottom Left) -> Logo goes Top Right */
.logo-opp-3 {
    top: 3em;
    right: 3em;
    bottom: auto;
    left: auto;
}

/* Image is placement-4 (Bottom Right) -> Logo goes Top Left */
.logo-opp-4 {
    top: 3em;
    left: 3em;
    bottom: auto;
    right: auto;
}
	
.section {
  position: relative;
  height:auto;	
  min-height: 100vh;
  width: 80vw;
  padding-left:10vw;	
  display:flex; 
  align-items: flex-start;
  justify-content: center;	
  flex-direction: column;	
  /*background: red;*/
}

.sectionALT {
  position: relative;
  height:auto;	
  min-height: 100vh;
  gap: 20px; /* Changed from column-gap to gap */
  width: 80vw;
  padding-left: 10vw;	
  padding-bottom:20vh;	
  display: flex; 
  align-items: flex-start;
  justify-content: center;	
  flex-direction: column;
  /*background: red;*/
}	
	
	
	
.video-module {
  position: relative;
}

.video-trigger {
  cursor: pointer;
  display: inline-block;
  transition: opacity 0.2s ease;
}

.video-trigger:hover {
  opacity: 0.7;
}

.player-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100dvh;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  /* GSAP handles toggling these properties */
  pointer-events: none; 
  opacity: 0; 
  background: transparent; 
}

/* --- PLAYER CONTAINER --- */

.player {
  /* Controls the size of the video inside the fixed popup */
  width: 100vw !important;
  max-width: none;
  max-height: 100dvh;	
  position: relative; 
  overflow: hidden; 
}

/* --- VIDEO & CANVAS LAYERS --- */

.video {
  width: 100%;
  height: auto; /* Changed to auto so it scales proportionately in the modal */
  display: block;
  object-fit: cover;
}

.video-frame {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  display: none;
  z-index: 10;
}

/* --- CONTROLS --- */

.controlHolder {
  background: none !important;
  position: absolute;
  bottom: 4vh; /* Lifted slightly off the bottom edge */
  left: 50%;
  transform: translateX(-50%); /* This perfectly centers the absolute container */
  width: 90%; /* Determines the width of the progress bar */
  display: flex;
  flex-direction: column; /* Stacks the progress bar on top of the buttons */
  align-items: center;
  z-index: 30;
}

.controls {
  width: 100%;
  display: flex;
  justify-content: center;
  padding-top: 1.5vh;
}

.time {
  gap: 2.5vw; /* This applies clean, even spacing between all buttons and timers */
  width: 90%; 
  display: flex;
  align-items: center;
  justify-content: space-between;	
}

/* Ensure the text elements match the buttons and don't have weird default margins */
.timer, .duration {
  margin: 0;
  font-size: 10px; 
  font-family: "PPMono" !important;	
  font-weight: 300;
  color: #ebece7;
  line-height: 1.4em;
  letter-spacing:-0.05em;		
}

.progressSVG {
  position: relative;
  display: block;
  width: 90%;
  height: 5px;
  color: #ebece7;	
  cursor: pointer;
}

.track {
  vector-effect: non-scaling-stroke;
  stroke: #ebece7;
  stroke-width: 1px;
}



/* --- BUTTONS --- */

button {
  opacity: 0.2; /* Bumped this up slightly from 0.1 so they are visible before hover, adjust as needed */
  padding: 0;
  margin: 0;
  border: none;
  outline: none;
  background: none;
  cursor: pointer;
  font-family: "PPMono" !important;
  color: #ebece7;
  font-size: 10px; 
  font-weight: 300;
  line-height: 1.4em;
  letter-spacing:-0.05em;	
  transition: opacity 0.2s ease;
}

button:hover {
  opacity: 1;
}

/* Ensure specific buttons inherit the base button styles */
.playPause, .stop, .closeBtn, .muteToggle {
  /* Properties inherited from the generic button selector above */
}	

	
	
}


*:focus {
  outline: 0;
  outline: none;
}


