/* =======================
Fonts
======================= */
@font-face {
  font-family: 'Compagnon-LightItalic';
  src:url('fonts/Compagnon-LightItalic.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'Red Hat'Mono;
  src:url('fonts/RedHatMono-VariableFont_wght.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'Red Hat'Mono;
  src:url('fonts/RedHatMono-Italic-VariableFont_wght.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

html {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
padding-bottom: env(safe-area-inset-bottom);
padding-top: env(safe-area-inset-top);
padding-left: env(safe-area-inset-left);
padding-right: env(safe-area-inset-right); 
}

body {
background-color: #e0e0d5;
--project-panel-height: 67vh;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}

/* =======================
Cursor
======================= */

@media (hover: hover) and (pointer: fine) {
*{
cursor: none;
background-color: #e0e0d5 !important;
}
}

#follower {
position: fixed;
width: 50px;
height: 50px;
border: 1px solid rgb(5, 0, 162);
background-color: transparent;
border-radius: 50%;
pointer-events: none;
z-index: 9995;
left: 0;
top: 0;
display: none;
}

@media (hover: hover) and (pointer: fine) {
#follower {
display: block;
}
}

.content {
z-index: 1;
}

/* custom cursor normally */
.player,
.player * {
  cursor: none;
}

/* restore default cursor in fullscreen */
.player:fullscreen,
.player:fullscreen * {
  cursor: auto;
}

/* =======================
preloading page ^
======================= */
#preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #dbdbd1;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 0.9s ease;
}

#preloader.fade-out {
  opacity: 0;
  pointer-events: none;
}

.loader-text {
  font-family: "Compagnon-LightItalic", monospace;
  font-weight: 300;
  font-size: 30px;
}

/* =======================
Text
======================= */
*{
color:rgb(5, 0, 162);
text-decoration: none;
}

h1{
font-family: "Red Hat Mono", monospace;   
font-weight: 300;
font-style: italic;
}
p{
font-family: "Red Hat Mono", monospace;
font-weight: 300;
}
footer{
font-family: "Red Hat Mono", monospace;
text-transform: uppercase;
font-weight: 300;
text-transform: uppercase;
position: fixed;
bottom: 0;
}
.project-text{
font-family: "Red Hat Mono", serif;
font-weight: 300;
}
.jenny-kim{
font-family: "Compagnon-LightItalic", serif;
color: rgb(0, 0, 0);
}

/* =======================
Hover Effect
======================= */
/* Hover for hyperlinks */
a{
text-decoration: none;
color: rgb(0, 0, 0);
position: relative;
transition: color 0.3s ease;
}
/* Underline animation */
a::after{
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 0;
height: 1px;
background-color: rgb(0, 0, 0);
transition: width 0.3s ease;
}
@media (hover: hover) and (pointer: fine) {
a:hover::after{
width: 100%;
}
}
/* Underline for Projects */
.work{
color: rgb(0, 0, 0);
position: relative;
transition: transform 0.1s ease; 
white-space: nowrap; 
text-decoration: none;
}
.work::after{
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 0;
height: 2.5px;
background-color: rgb(0, 0, 0);
transition: width 0.3s ease; 
}
.work.active-link::after {
width: 100%;
background-color: rgb(0, 0, 0);
}
@media (hover: hover) and (pointer: fine) {
.work:hover::after{
width: 100%;
text-decoration: underline;
background-color: rgb(0, 0, 0);
}
}
.email {
color:rgb(0, 0, 0);
position: relative;
transition: transform 0.1s ease-in-out, color 0.2s;
text-decoration: none;
content: "\A";
}
/* Create the animated underline */
.email::after {
content: "";
position: absolute;
left: 0;
bottom: 0;
width: 0;
height: 1px;
background-color: rgb(0, 0, 0);
transition: width 0.25s ease-in-out;
}
/* Animate the underline on hover */
@media (hover: hover) and (pointer: fine) {
.email:hover::after {
width: 100%;
}
}
/* Click effect */
.email:active {
transform: scale(0.95);
color: rgb(0, 0, 0); 
}
/* To show email copied message */
.copy-message {
position: absolute;
background: #bfbfbce9;
color: rgb(0, 0, 0);
padding: 5px 10px;
border-radius: 10px;
font-size: 13px;
transition: opacity 0.3s ease-in-out;
pointer-events: none;
font-family: "red hat mono", serif;
}

/* =======================
Project
======================= */
/* text layout of project for all text*/
.project{
position: fixed;
top:0;
left: 0;
background-color: #d7d7ca;
z-index: 2;
overflow-y: auto;
overflow-x: hidden;
}
.project-container{
background-color: transparent;
z-index: 3;
margin-left: 2%;
margin-top: 1%; 
margin-bottom: 3%;
}
.project-subheading{
word-spacing: -5px;
width: 60%;
line-height: 140%;
}
.project-text3{ 
margin-right: 1.7%;
word-spacing: 1px;
line-height: 140%;
}

.project-image{
display: flex;
justify-content: center;
align-items: center;
width: 100%;
padding-left: 10%;
padding-right: 10%;
margin: 5% auto;
background-color: transparent;
box-sizing: border-box;
}

/* vetica */
.vetica-image {
height: auto;
display: block;
}

/* ai */
.project-ai{
align-items: center;
display: block;   
margin: 5% auto;  
background-color: transparent;
}

.player {
width: 96%;
max-width: 100%;
}

.player video {
width: 100%;
display: block;  
}

#time{
font-family: "Red Hat Mono", serif;
font-size: 13px;
color: rgb(0, 0, 0);
font-weight: 400;
}

.controls {
display: grid;
grid-template-columns: auto 1fr auto auto auto auto;
gap: 10px;
align-items: center;
padding: 10px;
background: #d9d9d1;
font-family: "Red Hat Mono", serif;
}
.controls button {
border: 0;
padding: 5px 10px;
border-radius: 10px;
color:rgb(0, 0, 0);
font-family: "Red Hat Mono", serif;
background-color: #bfbfbce9;
font-size: 13px;
}

.controls input[type="range"] {
width: 100%;
}

.player:fullscreen {
width: 100vw;
height: 100vh;
background: black;
display: flex;
flex-direction: column;
justify-content: center;
}

.player:fullscreen video {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.player:fullscreen .controls {
  position: absolute;
  bottom: 0;
  width: 100%;
}

/* ===== SEEK BAR TRACK ===== */
#seek {
  -webkit-appearance: none;
  appearance: none;
  height: 3px;
  border-radius: 10px;
}
/* ===== Chrome / Safari track ===== */
#seek::-webkit-slider-runnable-track {
  height: 3px;
  background: rgb(0, 0, 0);
  border-radius: 10px;
}
/* ===== Chrome / Safari thumb ===== */
#seek::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 10px;
  width: 10px;
  border-radius: 50%;
  background: rgb(0, 0, 0);
  margin-top: -3.5px;
}

/* =======================
ETC
======================= */
.etc{
background-color: #d8d7b4eb;
}

/* =======================
Phone Screen 
======================= */
/*Phone Screen*/ @media (min-width: 240px) and (max-width: 360px){

.jenny-jenny, .landscape{
display: none;
}

/* Layout */
.grid-container {
z-index: 1;
min-height: 100vh;
margin: 0 auto;
padding-left: .2%;
padding-right: .2%;
position: relative;
}

.project-phone{
position: fixed;
bottom:3%;
}

.bottom-footer{
position:fixed;
bottom: 1px;
flex-direction: column;
}

.footer-left, .footer-right{
width: 100%;
}

.jenny-phone p, .hidden-text, .jenny-phone .hidden-text p {
display: inline;
margin:0px;
line-height: 1;
opacity: 1 !important;
}
.jenny-phone{
position: fixed;
top: 3px;
}
.jen{
margin-top: 8px;
}

/* Text */
h1{
font-size: 23px;
line-height: 42px;
}
p{
font-size: 14px;
}
footer{
font-size: 8px;
letter-spacing: 2%;
}
.jenny-kim{
font-size: 16px;
text-shadow: rgb(0, 0, 0) 0px .1px 1px;
}
.project-text{
font-size: 14px;
}
.loader-text {
font-size: 14px;
}

/* =======================
Project
======================= */
.project {
width: 100%;
height: var(--project-panel-height);
transform: translateY(-100%);
transition: transform 0.8s ease;
will-change: transform, opacity;
}

.project.open {
  transform: translateY(0);
}

.work::after{
height: 1px;
}

.vetica-image {
width:clamp(235px,85vw, 365px);
height: auto;
display: block;
}

/* hommali */
.hommali-image{
width:clamp(235px,85vw, 365px);
}

#time, .controls button{
font-size: 7px;
padding: 2px 6px;
}
}

/* =======================
Phone Screen vertical
======================= */
/*Phone Screen*/ @media (min-width: 360px) and (max-width: 500px){
.jenny-jenny, .landscape{
display: none;
}

  /* Layout */
.grid-container {
z-index: 1;
min-height: 100vh;
margin: 0 auto;
padding-left: .2%;
padding-right: .2%;
position: relative;
}

.project-phone{
position: fixed;
bottom:3%;
}

.bottom-footer{
position: fixed;
bottom: 1px;
flex-direction: column;
}

.footer-left, .footer-right{
width: 100%;
}

.jenny-phone p, .hidden-text, .jenny-phone .hidden-text p {
display: inline;
margin:0px;
line-height: 20px;
opacity: 1 !important;
}

.jenny-phone{
position: fixed;
top:3px;
}

.jen{
margin-top: 12px;
}

/* Text */
h1{
font-size: 23px;
line-height: 40px;
}
p{
font-size: 14px;
}
footer{
font-size: 8px;
letter-spacing: 2%;
}
.jenny-kim{
font-size: 16px;
text-shadow: rgb(0, 0, 0) 0px .1px 1px;
}
.project-text{
font-size: 14px;
}

.loader-text {
font-size: 27px;
}

/* =======================
Project
======================= */
.project {
width: 100%;
height: var(--project-panel-height);
transform: translateY(-100%);
transition: transform 0.8s ease;
will-change: transform, opacity;
}

.project.open {
  transform: translateY(0);
}

.work::after{
height: 1px;
}

.vetica-image {
width:clamp(235px,85vw, 365px);
height: auto;
display: block;
}

/* hommali */
.hommali-image{
width:280px;
}

#time, .controls button{
font-size: 9px;
padding: 4px 8px;
}
}
/* =======================
Tablet Screen
======================= */
/*Tablet Screen*/ @media (min-width: 501px) and (max-width: 984px){
.jenny-jenny, .landscape{
display: none;
}

/* Layout */
.grid-container {
z-index: 1;
min-height: 100vh;
margin: 0 auto;
padding-left: .2%;
padding-right: .2%;
position: relative;
}

.project-phone{
position: fixed;
bottom:3%;
}

.bottom-footer{
position: fixed;
bottom: 0;
flex-direction: column;
}

.footer-left, .footer-right{
width: 100%;
}

.jenny-phone p, .hidden-text, .jenny-phone .hidden-text p {
display: inline;
margin:0px;
line-height: 140%;
opacity: 1 !important;
}

.jenny-phone{
position: fixed;
top:1px;
}


.jen{
margin-top: 12px;
}

/* Text */
h1{ 
font-size: clamp(32px, 4.9vw, 42px);
line-height: 150%;
letter-spacing: -3px;
font-style: italic;
}
p{
font-size: 14px;
word-spacing: -1px;
margin-bottom: 25px;
line-height: 134%;
}
footer{
font-size: 10px;
}
.social{
word-spacing: 2px;
}
.jenny-kim{
font-size: 17px;
}
.project-text{
font-size: 14px;
}

/* =======================
Project
======================= */
.project {
width: 100%;
height: var(--project-panel-height);
transform: translateY(-100%);
transition: transform 0.5s ease;
will-change: transform, opacity;
}
.project.open {
  transform: translateY(0);
}

.work::after{
height: 2px;
}

.vetica-image {
width:clamp(270px,75vw, 600px);
height: auto;
display: block;
}

/* hommali */
.hommali-image{
width:clamp(450px, 20vw,500px);
}
}

/* =======================
Smaller Laptop Screen
======================= */
/*Smaller Laptop Screen*/ @media (min-width: 985px) and (max-width: 1343px){
/* =======================
W3b Style
======================= */
.jen, .landscape{
display: none;
}

html,
body {
  overflow-x: hidden;
}

/* CSS Grid 2 Columns */
.grid-container {
z-index: 500;
display:grid;
grid-template-columns: 50% 50%;
grid-template-rows: 55% 45%; 
height: 100vh;
margin: 0 auto;
padding-left: .2%;
padding-right: .2%;
}
/* Flexbox 2 columns each */
.flex-container{
display: flex;
}
/* Note-fill the flex-container */
.flex-item{
flex:1;
margin-top: -18px;
}
.middle-gap{
margin-left: 1.7%;
}

.grid-item,
.flex-container,
.flex-item {
overflow: visible;
}

.project-phone{
position: fixed;
bottom:3%;
left: 49%;
}

.bottom-footer{
display: flex;
justify-content: space-between;
align-items: flex-end;
width: 100%;
gap: 0px;
line-height: 1;
}
.footer-left, .footer-right{
width: 50%;
}


/* Text */
h1{ 
font-size: clamp(38px, 3vw, 45px);
line-height: 150%;
letter-spacing: -3px;
font-style: italic;
}
p{
font-size: clamp(14px, .5vw, 16px);
word-spacing: -1px;

margin-bottom: 25px;
line-height: 134%;
}
footer{
font-size: 10px;
}
.social{
word-spacing: 2px;
text-align: right;
}
.project-text{
font-size: clamp(14px, .5vw, 16px);
}
.jenny-kim{
font-size: clamp(17px, .5vw, 19px);
transition: text-shadow .2s ease;
overflow: visible;
}

/* Animation of jenny kim hover effect */
.hover-jenny:hover .jenny-kim{
text-shadow: rgb(0, 0, 0) 0px .2px 1px;
}

.hidden-text {
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  display: block;
  margin-top: 20px;
  transition: opacity .25s ease, max-height .25s ease;
}

.hover-jenny:hover + .hidden-text,
.jenny-phone:hover .hidden-text {
  opacity: 1;
  max-height: 300px;
  overflow: visible;
}
/* =======================
Project
======================= */
.project {
width: 50%;
height: 100%;
transform: translateX(-100%);
transition: transform 0.5s ease;
}

.project.open{
transform: translateX(0);
}
/* text layout of project for all text*/
.project-container{
background-color: transparent;
z-index: 3;
margin-left: 2%;
margin-top: 1%; 
}
.project-subheading{
word-spacing: -5px;
width: 60%;
line-height: 140%;
}

.project-text3{ 
margin-right: 1.7%;
word-spacing: 1px;
line-height: 140%;
}

/* vetica */
.vetica-image {
width:clamp(490px,45vw,620px);
height: auto;
display: block;
}

/* hommali */
.hommali-image{
width:clamp(450px, 20vw,500px);
}

/*AI*/
.player {
  width: 96%;
  max-width: 100%;
}
}

/* =======================
Laptops/ Desktops Defaults
======================= */
/*Laptops Desktops*/ @media (min-width:1344px) and (max-width: 1649px){
/* =======================
W3b Style
======================= */
.jen, .landscape{
display: none;
}

/* CSS Grid 2 Columns */
.grid-container {
z-index: 500;
display:grid;
grid-template-columns: 50% 50%;
grid-template-rows: 54% 46%; 
height: 100vh;
margin: 0 auto;
padding-left: .2%;
padding-right: .2%;
}
/* Flexbox 2 columns each */
.flex-container{
display: flex;
}
/* Note-fill the flex-container */
.flex-item{
flex:1;
margin-top: -18px;
}
.middle-gap{
margin-left: 1.7%;
}


.project-phone{
position: fixed;
bottom:3%;
left: 49%;
}

.bottom-footer{
display: flex;
justify-content: space-between;
align-items: flex-end;
width: 100%;
gap: 0px;
line-height: 1;
}
.footer-left, .footer-right{
width: 50%;
}


/* Text */
h1{   
font-size: 45px;
line-height: 150%;
letter-spacing: -3px;
}
p{
font-size: 16px;
word-spacing: -1px;
line-height: 134%;
}
footer{
font-size: 10px;
position: fixed;
bottom: 0;
}
.social{
word-spacing: 2px;
text-align: right;
}
/* For all project text and layout*/
.project-text{
font-size: 16px;
}

.jenny-kim{
font-size: 19px;
transition: text-shadow .2s ease;
}
/* Animation of jenny kim hover effect */
.hover-jenny:hover .jenny-kim{
text-shadow: rgb(0, 0, 0) 0px .2px 1px;
}

.hidden-text{
opacity: 0; 
display: block;
}

/* =======================
Project
======================= */
.project {
  width: 50%;
  height: 100%;
  transform: translateX(-100%);
  transition: transform 0.5s ease;
}

.project.open{
transform: translateX(0);
}
/* vetica */
.vetica-image {
width:550px;
height: auto;
display: block;
}

.hommali-image{
width:500px;
}
}





@media (max-height: 450px){
*{
color: #0500a2c1;
}

.jenny-jenny,
h1,
.project,
.project-phone, .email-phone {
display: none;
}

.jen,
.landscape {
display: block;
}

.grid-container {
z-index: 1;
display: block;
grid-template-columns: none;
grid-template-rows: none;
height: auto;
min-height: 100vh;
margin: 0 auto;
padding-left: .2%;
padding-right: .2%;
position: relative;
}

.flex-container {
display: block;
}

.flex-item {
margin-top: 0;
}

.middle-gap {
margin-left: 0;
}

.bottom-footer{
position:fixed;
bottom: 1px;
flex-direction: column;
width: 100%;
gap: 0px;
line-height: normal;
}

.footer-left, .footer-right{
width: 100%;
}

.jenny-phone p, .hidden-text, .jenny-phone .hidden-text p {
display: inline;
margin:0px;
line-height: 16px;
opacity: 1 !important;
}

.jen{
margin-top: 8px;
}

.jenny-phone{
position: fixed;
top:3px;
}

.hidden-text {
max-height: none;
overflow: visible;
}

.landscape{
position:fixed;
bottom: 46px;
font-size: 16px !important;
color: #ff00a2e9;
}

p{
font-size: 14px !important;
word-spacing: normal !important;
line-height: 14px !important;
margin-bottom: 0 !important;
}

footer{
font-size: 8px !important;
letter-spacing: 2% !important;
}

.social{
text-align: left;
}

.jenny-kim{
font-size: 16px !important;
text-shadow: rgb(0, 0, 0) 0px .1px 1px;
}
}
