@font-face {
  font-family: 'Arketa';
  src: url('../fonts/OOArketa-Regular.woff2') format('woff2'),
       url('../fonts/OOArketa-Regular.woff') format('woff');
}

/* @font-face {
  font-family: 'Arketa';
  src: url('../fonts/NewEdge666-LightRounded.woff2') format('woff2'),
       url('../fonts/NewEdge666-LightRounded.woff') format('woff');
} */

body {
  --arketa-size: 8.5pt;
  background: #FBF9F6;
  font-family:'VT323', monospace;
  color: #767676;
  font-size: 17px;
  line-height: 1;
  margin: 0;
  padding: 0;
  height: 100%;
  letter-spacing: 0.01em;
  word-spacing: -0.12em;
  box-sizing: border-box;
}

.vt323-regular {
  font-family: "VT323", monospace;
  font-weight: 400;
  color: #767676;
  
}

h1 {
  font-family: 'Arketa', sans-serif;
  font-weight: normal;
  font-size: 8.5pt;
  line-height: 1.3;
  letter-spacing: 0.01em;
  word-spacing: -0.23em;
  hyphens: auto;
  text-align: justify;
  margin: 0;
  color: #4F4F4F;
}

p {
  margin: 0;
  margin-block: 0;
}

a {
  text-decoration: none;
  color: #767676;    
  transition: filter 0.3s ease; 
}

@media only screen and (width >= 650px) {
a:hover {
  filter: blur(1px); 
}

.header {
  position: fixed;
  display: grid;
  grid-template-columns: repeat(2, 23%) repeat(1, 53%) repeat(1, 1%);
  grid-template-rows: 2.5vh;
  width: 100%;
  gap: 0px;
  margin: 0px;
  /* background-color: #f0efea; */
  /* z-index: 10; */
  /* overflow: hidden; */
}

.page {
  display: grid;
  grid-template-columns: repeat(2, 23%) repeat(1, 53%) repeat(1, 1%); 
  grid-template-rows:
    /*1*/  2vh
    /*2*/  1.5vh
    /*3*/  1fr       /* p1 img */
    /*4*/  3vh     /* p1 caption */
    /*5*/  1vh
    /*6*/  1fr       /* p2 img */
    /*7*/  3vh      /* p2 caption */
    /*8*/  1vh
    /*9*/  1fr       /* p3 img */
    /*10*/ 3vh      /* p3 caption */
    /*11*/ 1vh
    /*12*/ 1fr       /* p4 img */
    /*13*/ 3vh      /* p4 caption */
    /*14*/ 1vh
    /*15*/ 1fr       /* p5 img */
    /*16*/ 3vh     /* p5 caption */
    /*17*/ 1vh
    /*18*/ 1fr       /* p6 img */
    /*19*/ 3vh      /* p6 caption */
    /*20*/ 1vh
    /*21*/ 1fr       /* p7 img */
    /*22*/ 3vh     /* p7 caption */
    /*23*/ 1vh
    ;
  width: 100%;
  gap: 0px;
  margin: 0px;
  overflow: hidden;
  align-items: start;
  min-width: 0;
  min-height: 0;
}

.page.process {
  grid-template-rows:
    /*1*/  2vh
    /*2*/  1.5vh
    /*3*/  1fr
    /*4*/  3vh
    /*5*/  1vh
    /*6*/  1fr
    /*7*/  3vh
    /*8*/  1vh
    /*9*/  1fr
    /*10*/ 3vh
    /*11*/ 1vh
    /*12*/ 1fr
    /*13*/ 3vh
    /*14*/ 1vh
    /*15*/ 1fr
    /*16*/ 3vh
    /*17*/ 1vh
    /*18*/ 1fr
    /*19*/ 3vh
    /*20*/ 1vh
    /*21*/ 1fr
    /*22*/ 3vh
    /*23*/ 1vh
    /*24*/ 1fr
    /*25*/ 3vh
    /*26*/ 1vh
    /*27*/ 1fr
    /*28*/ 3vh
    /*29*/ 1vh
    ;
}

 /* header */
.bio-container {
  display: inline-block;
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  margin-left: 3%;
  margin-right: 5%;
}

.name {
  display: inline-block;
  grid-column: 1 / 2;
  grid-row: 1 / 2;
  margin-block-start:.4em;
}

.bio {
  display: none;
  margin-right: 5%;
}

.plus::after {
  content: "+";
}

#toggle:checked + .plus + .bio {
  display: inline;
}

#toggle:checked + .plus::after {
  content: "−";
}

#text-2 {
  display: inline-block;
  grid-column: 2 / 3;
  grid-row: 1 / 2;
  margin-block-start: .4em;
  align-self: start;
}
#text-3 {
  grid-column: 3 / 4;
  grid-row: 1 / 2;
  margin-block-start: .4em;
  display: inline-block;
  align-self: start;
}

.nav-active {
  text-decoration: underline;
}

.bio-container a {
  text-decoration: underline;
}

.bio-container .name a {
  text-decoration: none;
}

 /* project 1 */
.title-1 { grid-column: 2 / 3; grid-row: 3 / 4; }
.img-1   { grid-column: 3 / 4; grid-row: 3 / 4; }
.caption-1 { grid-row: 4 / 5; }
.p-1 {
  grid-column: 1 / 3;
  grid-row: 3 / 4;
  align-self: end;
  margin-left: 1.5%;
  margin-right: 1.5%;
  margin-bottom: -0.5%;
  display: none;
}
.p-1.open {
  display: block;
  max-height: 100%;
  overflow-y: auto;
}
.page.process .p-1,
.page.process .p-4,
.page.process .p-8 {
  grid-column: 1 / 2;
}

.page.process .p-7,
.page.process .p-2,
.page.process .p-5,
.page.process .p-3,
.page.process .p-6 {
  grid-column: 1 / 3;
}

/* process.html visual order: 1,2,5,4,6,7,3,8 */
.page.process .title-5 { grid-row: 9 / 10; }
.page.process .img-5   { grid-row: 9 / 10; }
.page.process .caption-5 { grid-row: 10 / 11; }
.page.process .p-5     { grid-row: 9 / 10; }
.page.process .ig-4    { grid-row: 9 / 10; }
.page.process .ig-5    { grid-row: 9 / 10; }

.page.process .title-6 { grid-row: 15 / 16; }
.page.process .img-6   { grid-row: 15 / 16; }
.page.process .caption-6 { grid-row: 16 / 17; }
.page.process .p-6     { grid-row: 15 / 16; }
.page.process .ig-1    { grid-row: 15 / 16; }

.page.process .title-7 { grid-row: 18 / 19; }
.page.process .img-7   { grid-row: 18 / 19; }
.page.process .caption-7 { grid-row: 19 / 20; }
.page.process .p-7     { grid-row: 18 / 19; }

.page.process .title-3 { grid-row: 21 / 22; }
.page.process .img-3   { grid-row: 21 / 22; }
.page.process .caption-3 { grid-row: 22 / 23; }
.page.process .p-3     { grid-row: 21 / 22; }
.page.process .ig-6    { grid-row: 21 / 22; }

.col2-block {
  display: block;
  padding-left: 50%;
}

.desc-toggle {
  cursor: pointer;
  font-size: 1em;
  text-decoration: underline;
}

 /* project 2 */
.title-2 { grid-column: 2 / 3; grid-row: 6 / 7; }
.img-2   { grid-column: 3 / 4; grid-row: 6 / 7; }
.caption-2 { grid-row: 7 / 8; }
.p-2 {
  grid-column: 1 / 3;
  grid-row: 6 / 7;
  align-self: end;
  margin-left: 1.5%;
  margin-right: 1.5%;
  margin-bottom: -0.5%;
  display: none;
}
.p-2.open {
  display: block;
}

.p-3, .p-4, .p-5, .p-6, .p-7, .p-8, .p-9, .p-10 {
  grid-column: 1 / 3;
  align-self: end;
  margin-left: 1.5%;
  margin-right: 1.5%;
  margin-bottom: -0.5%;
  display: none;
}
.p-3  { grid-row: 9 / 10; }
.p-4  { grid-row: 12 / 13; }
.p-5  { grid-row: 15 / 16; }
.p-6  { grid-row: 18 / 19; }
.p-7  { grid-row: 21 / 22; }
.p-8  { grid-row: 24 / 25; }
.p-9  { grid-row: 27 / 28; }
.p-10 { grid-row: 30 / 31; }
.p-3.open, .p-4.open, .p-5.open,
.p-6.open, .p-7.open, .p-8.open,
.p-9.open, .p-10.open { display: block; }

 /* project 3 */
.title-3 { grid-column: 2 / 3; grid-row: 9 / 10; }
.img-3   { grid-column: 3 / 4; grid-row: 9 / 10; }
.caption-3 { grid-row: 10 / 11; }


 /* project 4 */
.title-4 { grid-column: 2 / 3; grid-row: 12 / 13; }
.img-4   { grid-column: 3 / 4; grid-row: 12 / 13; }
.caption-4 { grid-row: 13 / 14; }

 /* project 5 */
.title-5 { grid-column: 2 / 3; grid-row: 15 / 16; }
.img-5   { grid-column: 3 / 4; grid-row: 15 / 16; }
.caption-5 { grid-row: 16 / 17; }

 /* project 6 */
.title-6 { grid-column: 2 / 3; grid-row: 18 / 19; }
.img-6   { grid-column: 3 / 4; grid-row: 18 / 19; }
.caption-6 { grid-row: 19 / 20; }

 /* project 7 */
.title-7 { grid-column: 2 / 3; grid-row: 21 / 22; }
.img-7   { grid-column: 3 / 4; grid-row: 21 / 22; }
.caption-7 { grid-row: 22 / 23; }

 /* project 8 */
.title-8 { grid-column: 2 / 3; grid-row: 24 / 25; }
.img-8   { grid-column: 3 / 4; grid-row: 24 / 25; }
.caption-8 { grid-row: 25 / 26; }

 /* project 9 */
.title-9 { grid-column: 2 / 3; grid-row: 27 / 28; }
.img-9   { grid-column: 3 / 4; grid-row: 27 / 28; }
.caption-9 { grid-row: 28 / 29; }

 /* project 10 */
.title-10 { grid-column: 2 / 3; grid-row: 30 / 31; }
.img-10   { grid-column: 3 / 4; grid-row: 30 / 31; }
.caption-10 { grid-row: 31 / 32; }

/* captions */
.caption {
  grid-column: 3 / 4;
  display: flex;
  position: relative;
  align-items: center;
  padding: 3px 0;
}
.cap-categories {
  position: absolute;
  left: 0;
  right: 0;
  text-align: center;
  pointer-events: none;
  font-family: 'Arketa', sans-serif;
  font-size: var(--arketa-size);
  color: #4F4F4F;
}

/* .title-1 p, .title-2 p, .title-3 p, .title-4 p,
.title-5 p, .title-6 p, .title-7 p, .title-8 p, .p-1 {
  font-family: 'Arketa', sans-serif;
  font-size: var(--arketa-size);
  color: #4F4F4F;
} */

.title-1 a, .title-2 a, .title-3 a, .title-4 a, .title-8 a,
h1 a {
  color: #4F4F4F;
}

.title-1 a:hover, .title-2 a:hover, .title-3 a:hover, .title-4 a:hover,
.title-5 a:hover, .title-6 a:hover, .title-7 a:hover, .title-8 a:hover {
  filter: none;
}
.cap-count { margin-left: auto; margin-right: 6em; }
.cap-year  { position: absolute; right: 0; }

/* styling */
::-webkit-scrollbar {
    display: none;
}

.video-wrapper {
  position: relative;
  aspect-ratio: 3 / 2;
  height: 100%;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.video-wrapper iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  border: none;
  z-index: 2;
}

.vimeo-facade::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 3;
}

[class^="img-scroll"] img,
[class*=" img-scroll"] img {
  width: auto;          /* let width be dictated by height, not container */
  height: 100%;         /* fill the wrapper height */
  max-width: none;      /* prevent any implicit max-width capping */
  object-fit: contain;
  display: block;
  flex-shrink: 0;       /* critical for Firefox — prevents squishing */
}

[class^="wrapper"] {
  align-items: stretch;
}

.page img{
  display: block;
  width: 100%;                        /* image fills container width */                  /* image fits container */                   /* maintain natural height */      /* optional: flush with image edges */
  object-fit: contain;   
  margin-bottom: 0;             /* remove inline spacing */
}

.page-rev img{
  display: block;
  width: 100%;                        /* image fills container width */                  /* image fits container */                   /* maintain natural height */      /* optional: flush with image edges */
  object-fit: contain;   
  margin-bottom: 0; 
}

.img-scroll .img-scroll-2 img{
  flex: 00 auto;
  width: auto;
  height: auto;
  object-fit: cover;
}

.img-scroll .wrapper{
  display: flex;
  flex-wrap: nowrap;   /* prevents wrapping (forces horizontal layout) */
  width: max-content;
  height: 100%;  /* expands as wide as needed for all images */
}

/* slideshow */
.slideshow {
  position: relative;
  width: 100%;
  height: 100%;
}

.slides-wrapper {
  width: 100%;
  height: 100%;
}

.slideshow .slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
  transition: none;
}

.slideshow .slide.active {
  position: relative;
  opacity: 1;
  pointer-events: auto;
}

.slide-arrow {
  display: none;
}

.slideshow.cursor-left {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='32'%3E%3Ctext y='26' font-size='28' fill='%234F4F4F'%3E%E2%9F%B5%3C/text%3E%3C/svg%3E") 20 12, w-resize;
}

.slideshow.cursor-right {
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='52' height='32'%3E%3Ctext y='26' font-size='28' fill='%234F4F4F'%3E%E2%9F%B6%3C/text%3E%3C/svg%3E") 20 12, e-resize;
}

html.is-safari .slideshow {
  aspect-ratio: 3 / 2;
  height: auto;
  overflow: hidden;
  isolation: isolate;
  contain: layout paint;
  line-height: 0;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

html.is-safari .slideshow .slide.active {
  position: absolute;
  inset: 0;
  background: #FBF9F6;
  z-index: 10;
}

html.is-safari .slideshow .slide.safari-slide-entering {
  position: absolute;
  inset: 0;
  background: #FBF9F6;
  opacity: 1;
  pointer-events: auto;
  z-index: 20;
}

html.is-safari .slideshow .slide,
html.is-safari .slideshow img,
html.is-safari .slideshow .video-wrapper,
html.is-safari .slideshow iframe {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

html.is-safari .slideshow img,
html.is-safari .slideshow .video-wrapper {
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: contain;
  object-position: top center;
}

html.is-safari .slideshow .video-wrapper {
  aspect-ratio: auto;
}

/* img scrolls */
.img-scroll {
  grid-column: 3 / 6;
  grid-row: 3 / 6;
  overflow-x: auto;
  width: auto;
  height: 100%;
  scrollbar-width: none;
}

.img-scroll .wrapper{
  display: flex;
  flex-wrap: nowrap;   /* prevents wrapping (forces horizontal layout) */
  width: max-content;
  height: 100%;  /* expands as wide as needed for all images */
}


}

/* process grid*/
.page-rev {
  display: grid;
  grid-template-columns: repeat(2, 23%) repeat(1, 53%) repeat(1, 1%); 
  grid-template-rows: 
    /*1*/ 2vh

    /*2*/ 1.5vh
    /*3*/ 1fr
    
    /*4*/ 1vh
    /*5*/ 1fr

    /*6*/ 1vh
    /*7*/ 1fr

    /*8*/ 1vh
    /*9*/ 1fr

    /*10*/ 1vh
    /*11*/ 1fr

    /*12*/ 1vh
    /*13*/ 1fr

    /*14*/ 1vh
    /*15*/ 1fr

    /*16*/ 1vh
    /*17*/ 1fr

    /*18*/ 1vh

    ;
  width: 100%;
  gap: 0px;
  margin: 0px;
  overflow: hidden;
  align-items: start;
  min-width: 0; 
  min-height: 0;
}

/* process images */

.ig-2 {
  grid-column: 2 / 3;
  grid-row: 3 / 4;
  margin-right: 3%;
  align-self: end;
}

.vid-1 {
  grid-column: 1 / 2;
  grid-row: 24 / 25;
  margin-left: 3%;
  padding: 0px;
  margin-top: -5%;
  align-self: start;
}

.ig-3 {
  grid-column: 2 / 3;
  grid-row: 24 / 25;
  margin-right: 3%;
  align-self: end;
}

.vid-2 {
  grid-column: 2 / 3;
  grid-row: 12 / 13;
  margin-right: 3%;
  padding: 0px;
  align-self: end;
}

.vid-3 {
  grid-column: 1 / 2;
  grid-row: 27 / 28;
  margin-left: 3%;
  align-self: start;
}
.vid-3 .video-wrapper {
  aspect-ratio: 1 / 1;
}

.ig-1 {
  grid-column: 1 / 2;
  grid-row: 18 / 19;
  margin-left: 3%;
  align-self: start;
}

.ig-4 {
  grid-column: 1 / 2;
  grid-row: 15 / 16;
  margin-left: 3%;
  align-self: start;
}

.ig-5 {
  grid-column: 1 / 2;
  grid-row: 15 / 16;
  margin-left: 3%;
  align-self: start;
}

.ig-6 {
  grid-column: 1 / 2;
  grid-row: 9 / 10;
  margin-left: 3%;
  align-self: start;
}

.ig-7 {
  grid-column: 1 / 2;
  grid-row: 6 / 7;
  margin-left: 3%;
  align-self: start;
}





/* MOBILE */
@media only screen and (width <= 650px) {
  .page {
    display: block;
    width: 100%;
    overflow-x: hidden;
  }

  /* Bio — always open at top, flowing inline */
  .bio-container {
    display: block;
    margin-left: 2%;
    margin-right: 2%;
    margin-block-start: 0.3em;
    margin-block-end: 0.6em;
  }

  .bio-container a { text-decoration: underline; }
  .bio-container .name a { text-decoration: none; }

  .name {
    display: inline;
  }

  .plus {
    display: none;
  }

  .bio {
    display: inline;
  }

  #text-2 { display: none; }
  #text-3 { display: none; }

  /* Hide everything except slideshows and captions */
  .title-1, .title-2, .title-3, .title-4,
  .title-5, .title-6, .title-7, .title-8 { display: none; }

  .p-1, .p-2, .p-3, .p-4,
  .p-5, .p-6, .p-7, .p-8 { display: none; }

  .ig-1, .ig-2, .ig-3, .ig-4,
  .ig-5, .ig-6, .ig-7, .ig-8 { display: none; }

  .desc-toggle { display: none; }
  .vid-1, .vid-2 { display: none; }

  /* Slideshows */
  .img-1, .img-2, .img-3, .img-4,
  .img-5, .img-6, .img-7, .img-8 {
    display: block;
    margin-left: 2%;
    margin-right: 2%;
    overflow: hidden;
  }

  /* Video wrappers: use aspect-ratio instead of height: 100% */
  .video-wrapper {
    height: auto;
    width: 100%;
  }

  /* Captions: cap-title left, cap-count right */
  .caption {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    position: static;
    padding: 3px 0;
    margin-left: 2%;
    margin-right: 2%;
    margin-top: 0.1em;
    margin-bottom: 0.6em;
  }

  .cap-categories { display: none; }
  .cap-year { display: none; }

  .cap-count {
    margin-left: auto;
    margin-right: 0;
  }

  /* Images fill width */
  .page img {
    display: block;
    width: 100%;
    object-fit: contain;
  }

  /* Slideshow: only show active slide */
  .slideshow {
    position: relative;
    width: 100%;
  }

  .slideshow .slide {
    display: none;
  }

  .slideshow .slide.active {
    display: block;
  }

  /* Video wrapper sizing */
  .video-wrapper {
    position: relative;
    aspect-ratio: 3 / 2;
    width: 100%;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }

  .video-wrapper iframe {
    position: absolute;
    width: 100%;
    height: 100%;
    border: none;
    z-index: 2;
  }

  .vimeo-facade::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 3;
  }

  ::-webkit-scrollbar { display: none; }

  body { font-size: 19px; }
}
