:root {
  --orange1: #E2602E;
  --orange2: #7B3921;

  --dark1: #373535;
  --dark2: #45443F;
  --dark3: #595957;

  --tabbar-pad-block: clamp(4px, 0.9vh, 12px);
  --tab-gap: clamp(4px, 0.6vw, 10px);
  --tab-gutter-right: clamp(8px, 3vw, 50px);
}

html, body {
  /*height: 100%;*/
  display: block;
  margin: 0;
  padding: 0;
  font-family: 'Source Code Pro', monospace;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  color: white;
  font-size: clamp(14px, 1vw + 13px, 20px);
}

a {
	text-decoration: none;
}

.first-section {
	height: 100vh;
	/*background-color: white;*/
}

/*.onscroll_anim {
	animation-iteration-count: infinite;
	animation-duration: 1s;
	animation-timing-function: linear;
	animation-play-state: paused;
	animation-delay: calc(var(--scroll) * -1s);
	animation-iteration-count: 1;
	animation-fill-mode: both;
}*/

.first-section.onscroll_anim {
	animation-name: frames_first_section_to_color;
	
}

.fa-background {
	background-image: linear-gradient(var(--dark1), var(--dark2));
	width: 100%;
	/*height: 100%;*/
  	overflow-x: hidden;
  	overflow-y: hidden;
}

.second-section {
	height: 100vh;
	min-height: 100vh;
	position: relative;
	display: flex;
	flex-direction: column;
	/*background-position: top 100%;*/

	/*background-image: linear-gradient(var(--dark1), var(--dark2));*/
}

.bar-container-1 {
	/*position: relative;*/
	/*top: -300px;*/
	position: absolute;
	bottom: 300px;
	width: 100%;
	z-index: 10;
}

.bar-container-1.onscroll_anim {
	animation-name: frames_bar_left_to_right_2;
	
}

.left-hidden-bar {
	position: absolute;
	height: 100px;
	width: 100%;
	background-image: linear-gradient(to right, #3C3B39 70%, var(--orange2));
	left: -100%;
}

.name-container {
	position: absolute;
	top: 30%;
	left: 10%;
}

.email-container {
	position: absolute;
	bottom: 50%;
	right: 10%;
}

.text-h1 {
	color: var(--orange1);
	font-size: 2.5rem;
	position: relative;
}

.text-h1:hover {
	width: 300px;
}

.text-s1 {
	color: #8F7368;
	font-size: 1rem;
}

.text-s2 {
	color: white;
	font-size: 1rem;
}

.orange-bar {
	position: absolute;
	height: 100px;
	width: 100%;
	background-image: linear-gradient(to right, var(--orange2), var(--orange1) 20%);
	clip-path: polygon(40% 0%, calc(40% + 40px) 50%, 100% 50%, 100% 100%, 0% 100%, 0% 100%, 0% 0%);	
}

.orange-bar.anim {
	animation-name: frames_orange_bar;
	animation-duration: 0.4s;
	animation-delay: 1s;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
	right: 100%;
	opacity: 50%;
}

.black-bar {
	position: absolute;
	height: 100px;
	width: 100%;
	background-color: #81604F;
	clip-path: polygon(50% 0%, calc(50% + 40px) 50%, 100% 50%, 100% 100%, 0% 100%, 0% 100%, 0% 0%);
}

.black-bar.anim {
	animation-name: frames_black_bar;
	animation-duration: 1s;
	animation-delay: 1.5s;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
	/*right: 100%;*/
	right: 10%;
	opacity: 0;
}



/* on scroll  */

/*.on-scroll-svg {

  animation: rotate 1s linear infinite;
  animation-play-state: paused;
  animation-delay: calc(var(--scroll) * -1s);
}*/

.orange-bar-1 {
	position: absolute;
	height: 100px;
	width: 300%;
	background-color: var(--orange1);
	display: block;
	clip-path: polygon(85% 0%, calc(85% + 40px) 50%, 100% 50%, 100% 100%, 0% 100%, 0% 100%, 0% 0%);
	right: 200%;
}

.orange-bar-1.onscroll_anim {
	animation-name: frames_bar_left_to_right_1;
}

.fafa-icon {
	color: white;
	position: absolute;
	z-index: 10000000;
	left: 10%;
	top: 0;
}

.fafa-icon.onscroll_anim {
	opacity: 0;
	animation-name: frames_rotate;
	-webkit-animation-name: frames_rotate;
}

.bar-container-2 {
    position: relative;
    display: flex;
    align-items: stretch;
    height: auto;
    width: 100%;
    border-color: gray;
    border-width: 2px;
    border-bottom-style: solid;
    padding-top: var(--tabbar-pad-block);
    z-index: 1;
}

.bar-container-2.onscroll_anim {
	/*opacity: 0;*/
	animation-name: frames_show_bar_container_2;
}

.tab_container::-webkit-scrollbar {
	height: 6px;
}

.tab_container::-webkit-scrollbar-track {
	background: var(--dark1);
}

.tab_container::-webkit-scrollbar-thumb {
	background: var(--orange1);
	border-radius: 4px;
}

.tab_container::-webkit-scrollbar-thumb:hover {
	background: var(--orange2);
}

.tab_container {
	position: relative;
	top: auto;
	/*left: 20vw;*/
	height: auto;
	display: flex;
	flex-wrap: nowrap;
	z-index: 0;
	margin-bottom: -2px;
	overflow-x: auto;
	flex: 1 1 0;
	min-width: 0;
    /*padding: 0vw 20vw 0vw 20vw;*/
}

.tab_container > .tab {
	color: white;
    font-size: clamp(0.95rem, 0.55rem + 0.85vw, 1.5rem);
    z-index: 0;
    padding: 0.6em 0.8em;
    text-align: center;
    border-radius: clamp(8px, 1.1vw, 20px) clamp(8px, 1.1vw, 20px) 0px 0px;
    background-color: var(--dark1);
    border: 1px solid var(--dark3);
    border-bottom: 2px solid gray;
    white-space: nowrap;
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tab_container > .tab:hover {
    background-color: var(--dark2);
}

.tab_container > .tab:first-child  {
	margin-left: var(--tab-gap);
}



.tab_container > .tab:last-child {
	margin-right: var(--tab-gutter-right);
}

.tab_container > .tab_divider {
	width: 1px;
	border-top: 10px solid var(--dark1);
	margin-top: 20px;
	height: 50px;
	border-bottom: 10px solid var(--dark1);
	background: var(--dark3);
	display: none;
}

.tab_container > .tab.active {
	z-index: 1;
	background-color: var(--dark2);
	border-color: gray;
	border-width: 2px;
	border-style: solid;
	border-bottom: 0px;
}

.tab_container > .tab.active::after {
    content: "•";
    color: green;
    margin: auto;
    z-index: 1;
}

.tab_container > .tab:before {
	/*content: '';
    display: block;
    background: var(--dark2);
    width: 160%;
    height: 100%;
    position: absolute;
    border-radius: 20px;
    z-index: -1;
    top: 0px;
    left: -30%;*/
    /*clip-path: polygon(85% 0%, 100% 100%, 0% 100%, 15% 0%);*/
}

.tab_icon {
	color: white;
    font-size: clamp(1.15rem, 0.8rem + 0.9vw, 2rem);
    padding: 0px clamp(8px, 1.4vw, 20px);
    display: flex;
    align-items: center;
    z-index: 3;
    background-color: var(--dark3);
    height: 100%;
    opacity: 1;
    border-color: gray;
    border-style: solid;
    border-width: 0px 0px 2px 0px;
    /*bottom: -1.5px;*/
}

.tab_icon > a {
	color: white;
	padding: 0px 5px;
	top: 0;
	position: relative;
}

.tab_icon > a:hover {
    color: var(--dark1);
}

.tab_background {
	background-color: rgb(89, 89, 87);
	opacity: 0;
	height: 10vh;
	position: absolute;
	top: 0;
	width: 100%;
}

.second-section-content {
	/*overflow-y: auto;
    transform-origin: right top;
    transform: rotate(-90deg) translateY(-85vh);
    width: 85vh;
    height: 100vw;*/

    width: 100%;
	height: 100%;
	overflow: hidden;
	padding: 10vh;

}

.second-section-content > div {
	/*padding: 10vw;
	font-size: 1.5rem;*/
	font-size: 1.5rem;
    /*transform: rotate(90deg);
    transform-origin: right top;
    height: 100vw;
    width: 85vh;
    
    margin: 110vh -10vw;*/

    /*height: 100%;
	width: 100%;
	position: absolute;*/
	/*padding: 10vh 5vw;*/
}


.second-section-content.onscroll_anim {
	opacity: 0;
	animation-name: frames_show_bar_container_2;
}

.orange-font {
	font-size: 1.5rem;
	color: var(--orange1);
}

/*************************** Arrow ***************************/
	
.fa-arrow-down {
	width: 2rem;
	height: 2rem;
	position: fixed;
	right: 0;
	bottom: 20vh;
	z-index: 9999;
	opacity: 1;
	animation: none;
	transition: opacity 0.3s ease;
}

.fa-arrow-down.arrow-hidden {
	opacity: 0 !important;
	pointer-events: none;
}

.fa-arrow-down > span {
	width: 100%;
    height: 100%;
    position: relative;
    /* border-radius: 50%; */
    background: transparent;
    display: block;
    /* border: 1px solid white; */
    transform: rotate(-90deg);
}

.fa-arrow-down > span:before {
	content: '';
    width: 300%;
    position: absolute;
    top: calc(50%);
    left: -100%;
    border-top: 1px solid white;
}

.fa-arrow-down > span:after {
	content: '';
    width: 1rem;
    height: 1rem;
    position: absolute;
    top: calc(50%);
    left: -100%;
    border-top: 1px solid white;
    transform: rotate(-45deg);
    transform-origin: top left;
}

/*************************** second section horizontal slide ***************************/

.second-section-wrapper {
  width: 100%;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
  perspective: 1000;
}
.slide-section {
	display: flex;
	height: 100%;
	width: calc(100% / 4);
	float: left;
	position: relative;
	background: var(--dark2);
	opacity: 1;
}

.slide-section > .section-content {
	padding: 20px 50px;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
}

.slide-section {
	overflow-y: auto;
}

/* ---------- Custom Scrollbar ---------- */

.slide-section::-webkit-scrollbar {
	width: 8px;
}

.slide-section::-webkit-scrollbar-track {
	background: var(--dark1);
}

.slide-section::-webkit-scrollbar-thumb {
	background: var(--orange1);
	border-radius: 4px;
}

.slide-section::-webkit-scrollbar-thumb:hover {
	background: var(--orange2);
}

/*.slide-section:nth-child(1) {
  background: #F64747;
}
.slide-section:nth-child(2) {
  background: #22A7F0;
}
.slide-section:nth-child(3) {
  background: #F9690E;
}
.slide-section:nth-child(4) {
  background: #9B59B6;
}
.slide-section:nth-child(5) {
  background: #03C9A9;
}*/

.slide-sections {
  width: 400%;
  height: 100%;
  transition: transform 0.4s ease;
}
.slide-section__title {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1.5rem;
  color: #fff;
}

/*************************** animation class ***************************/

.anim_slide {
	opacity: 0;
    position: relative;

	animation-name: frames_slide_left;
	animation-duration: 1s;
	animation-timing-function: linear;
	animation-fill-mode: forwards;
}

.anim_line_up {
	/*animation-delay: 5s;*/
	opacity: 0;
	animation-duration: 5s;
	animation-name: frames_line_up;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}

.anim_line_down {
	animation-delay: 6s;
	opacity: 0;
	animation-duration: 10s;
	animation-name: frames_line_down;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}



/*************************** key frames ***************************/

@keyframes frames_slide_left {
    0% { 
    	opacity: 0;
    	right: -100px; 
    }
    100% { 
    	opacity: 1;
    	right: 0px; 
    }
}

@-webkit-keyframes frames_slide_left {
    0% { 
		opacity: 0;
		right: -100px; 
	}
	100% { 
		opacity: 1;
		right: 0px; 
	}
}

@keyframes frames_line_up {
  0% {
    opacity: 0;
    transform: translateY(80%);
  }
  20% {
    opacity: 0;
  }
  50% {
    opacity: 1;
    transform: translateY(0%);
  }
  100% {
    opacity: 1;
    transform: translateY(0%);
  }
}

@-webkit-keyframes frames_line_up {
    0% {
      opacity: 0;
      transform: translateY(80%);
    }
    20% {
      opacity: 0;
    }
    50% {
      opacity: 1;
      transform: translateY(0%);
    }
    100% {
      opacity: 1;
      transform: translateY(0%);
    }
}

@keyframes frames_line_down {
  0% {
    opacity: 0;
    transform: translateY(-800%);
  }
  10% {
      opacity: 1;
  }
  30% {
    opacity: 1;
    transform: translateY(0%);
  }
  50% {
    opacity: 0;
    transform: translateY(200%);
  }
}

@-webkit-keyframes frames_line_down {
    0% {
      opacity: 0;
      transform: translateY(-800%);
    }
   	10% {
      opacity: 1;
    }
    30% {
      opacity: 1;
      transform: translateY(0%);
    }
    50% {
      opacity: 0;
      transform: translateY(200%);
    }
}

@keyframes frames_orange_bar {
    0% { 
    	opacity: 50%;
		right: 100%;
    }

    100% { 
    	opacity: 100%;
    	right: 0%;
    }
}

@-webkit-keyframes frames_orange_bar {
    0% { 
    	opacity: 50%;
		right: 100%;
    }

    100% { 
    	opacity: 100%;
    	right: 0%;
    }
}

@keyframes frames_black_bar {
	0% { 
		opacity: 0;
		right: 10%;
	}

	100% { 
		opacity: 100;
		right: 0%;
	}
}

@-webkit-keyframes frames_black_bar {
    0% { 
    	opacity: 0;
		right: 10%;
    }

    100% { 
    	opacity: 100;
    	right: 0%;
    }
}

/* Typing animation  */

.typing-animation-container {
	text-align: -webkit-center;
	margin: 5%;
	position: relative;
}

.typing-animation {
  width: 25ch;
  white-space: nowrap;
  overflow: hidden;
  border-right: 3px solid;
  font-family: monospace;
  font-size: 2.5rem;
}

.typing-animation.visible {
	animation: typing 2s steps(25), blink .5s step-end infinite alternate;
}

@keyframes typing {
  from {
    width: 0
  }
}
    
@keyframes blink {
  50% {
    border-color: transparent
  }
}

/* First Slide Css  */

.button-container {
	text-align: -webkit-center;
	margin-top: 20px;
	position: relative;
	height: 200px;
	display: inline-flex;
	width: 100%;
	justify-content: center;
}

.button-container > button {
	min-width: 200px;
    height: 100%;
    background-color: #FEF1E4;
    font-size: 2rem;
    border: 8px solid black;
    border-style: dashed;
    margin: 0 0.5em;
    padding: 0.8em;
}

.button-container > button:hover {
	-webkit-transform: translate(8px, -8px);
	-moz-transform: translate(8px, -8px);
	-ms-transform: translate(8px, -8px);
	transform: translate(8px, -8px);
	box-shadow: -16px 16px 0 var(--orange1);
}

/* ---------- Conversation (RPG-style Chat) ---------- */

.conv-area {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0; /* needed inside flex parent */
}

.conv-messages {
    flex: 1;
    overflow-y: overlay;
    overflow-x: hidden;
    padding: 10px 0;
    min-height: 0; /* needed for flex child scrolling */
}

.conv-messages::-webkit-scrollbar {
    width: 6px;
}

.conv-messages::-webkit-scrollbar-track {
    background: transparent;
}

.conv-messages::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 3px;
}

.conv-messages.scrolling::-webkit-scrollbar-thumb {
    background: var(--orange2);
    border-radius: 3px;
}

.conv-message {
    margin: 0.3em 0.1em;
    padding: 0.3em 0.4em;
    font-size: 1.5rem;
    line-height: 1.5;
}

.conv-lotusfa-msg {
    border-left: 3px solid var(--orange1);
    color: #f8f8f2;
    text-align: left;
}

.conv-user-msg {
    border-right: 3px solid var(--orange1);
    text-align: right;
    color: #aaa;
}

.conv-user-msg.slide-in-right {
    animation: slide-in-right 0.3s ease forwards;
}

@keyframes slide-in-right {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Fixed bottom bar for choices */
.conv-choices-bar {
    flex-shrink: 0;
    border-top: 1px solid var(--dark3);
    padding: 0.4em 0.3em;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    min-height: 120px;
}

.conv-choice-btn {
    padding: 0.3em 0.5em;
    background: transparent;
    border: 1px dashed var(--orange1);
    color: var(--orange1);
    font-family: 'Source Code Pro', monospace;
    font-size: 1.5rem;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.conv-choice-btn:hover {
    border-style: solid;
    box-shadow: 2px 2px 0 var(--orange1);
}

.conv-choice-btn.fade-out {
    opacity: 0;
    transform: translateY(-10px);
}

.conv-end-hint {
    margin-top: 20px;
    color: #555;
    font-size: 1.5rem;
    font-style: italic;
    cursor: pointer;
}

.conv-end-hint:hover {
    color: var(--orange1);
}


/* ---------- AboutMe Blocks ---------- */

.aboutme-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.about-profile-img {
	width: 200px;
	border-radius: 50%;
	display: block;
	margin: 0 auto 20px auto;
	transform-origin: center;
}

.about-block {
	max-width: 500px;
	margin: 10px auto 20px auto;
	font-size: 1.5rem;
	line-height: 1.8;
	width: 100%;
}

.about-expand-link {
	color: #a6e22e;
	cursor: pointer;
	font-size: 1.5rem;
	text-decoration: none;
	user-select: none;
	transition: opacity 0.2s ease;
}

.about-expand-link:hover {
	opacity: 0.6;
}

.thanos-star {
	color: var(--orange1);
	cursor: pointer;
	font-size: 0.7rem;
	vertical-align: super;
	opacity: 0;
	transition: opacity 0.2s ease, color 0.2s ease;
	text-decoration: none;
}

.thanos-star:hover {
	color: #a6e22e;
}

/* ---------- Infinity Stones ---------- */

.infinity-stone {
	display: inline-block;
	font-size: 0.9rem;
	cursor: pointer;
	margin-left: 3px;
	opacity: 0;
	transform-origin: center;
	transition: transform 0.2s ease;
	animation: stone-color-cycle 3s infinite;
}

.infinity-stone:hover {
	transform: scale(1.4);
}

@keyframes stone-color-cycle {
	0%, 16% { color: #00AEEF; text-shadow: 0 0 6px #00AEEF, 0 0 12px #00AEEF; }
	16.6%, 33% { color: #ED1C24; text-shadow: 0 0 6px #ED1C24, 0 0 12px #ED1C24; }
	33.6%, 50% { color: #92278F; text-shadow: 0 0 6px #92278F, 0 0 12px #92278F; }
	50.6%, 66% { color: #FFF200; text-shadow: 0 0 6px #FFF200, 0 0 12px #FFF200; }
	66.6%, 83% { color: #00A651; text-shadow: 0 0 6px #00A651, 0 0 12px #00A651; }
	83.6%, 100% { color: #F7941E; text-shadow: 0 0 6px #F7941E, 0 0 12px #F7941E; }
}

/* ---------- Typing Cursor ---------- */

.typing-cursor {
	color: #a6e22e;
	animation: blink 0.7s step-end infinite;
}

@keyframes blink {
	50% { opacity: 0; }
}

.about-block-body {
	overflow: hidden;
	padding: 0;
	margin: 0;
}

.about-field {
	display: block;
	margin: 0;
	padding: 0;
}

.about-result {
	overflow: hidden;
}

.about-value {
	color: #a6e22e;
	word-break: break-word;
}

/* ---------- Thanos Dusting Effect ---------- */

.disintegration-container {
	position: fixed;
	pointer-events: none;
	z-index: 9999;
}

.disintegration-container canvas {
	position: absolute;
	left: 0;
	top: 0;
	transition: transform 1.5s ease-out, opacity 1.5s ease-out, filter 1.5s ease-out;
	opacity: 1;
}

/* ---------- Collaborations Links ---------- */

.collab-link {
	color: var(--orange1);
	text-decoration: none;
	font-size: 1.5rem;
}

.collab-link:hover {
	color: var(--orange2);
	text-decoration: underline;
}

/* ---------- Contact Icons in Buttons ---------- */

.contact-icon {
	width: 40px;
	height: 40px;
	display: block;
	margin: 0 auto 8px auto;
}

/* ---------- Project Blocks ---------- */

.proj-comment {
	color: #8884fc;
	font-style: italic;
	max-width: 500px;
	margin: 10px auto 20px auto;
	font-size: 1.5rem;
	line-height: 1.8;
	width: 100%;
}

.proj-wrapper .about-block,
.proj-wrapper .proj-comment {
	max-width: 900px;
}

/* Project detail body - code editor style indentation with wrapping */
.proj-block .about-block-body {
	padding-left: 60px;
	overflow-x: hidden;
}

.proj-block .about-block-body .about-field {
	text-indent: -20px;
}

/* ---------- Contact Me ---------- */

.contact-intro {
    color: #87877d;
    font-size: 1.2rem;
    margin-bottom: 2px;
}

.contact-section {
    border: 1px solid var(--orange2);
    border-left: 3px solid var(--orange1);
    background: rgba(55, 53, 53, 0.5);
    padding: 16px 20px;
    margin: 12px 0 16px 0;
}

.contact-section-title {
    font-size: 1.4rem;
    color: var(--orange1);
    margin-bottom: 6px;
}

.contact-desc {
    font-size: 1.2rem;
    color: #d4d4d4;
    margin-bottom: 12px;
}

.contact-form {
    margin: 0;
}

.wish-textarea {
    width: 100%;
    min-height: 60px;
    background: var(--dark1);
    color: white;
    border: 1px solid var(--dark3);
    padding: 8px 10px;
    font-family: 'Source Code Pro', monospace;
    font-size: 1.2rem;
    resize: vertical;
    box-sizing: border-box;
    outline: none;
    line-height: 1.5;
}
.wish-textarea:focus {
    border-color: var(--orange1);
}

.wish-form-row {
    display: flex;
    gap: 8px;
    margin-top: 8px;
    align-items: center;
}

.wish-name {
    flex: 1;
    background: var(--dark1);
    color: white;
    border: 1px solid var(--dark3);
    padding: 5px 10px;
    font-family: 'Source Code Pro', monospace;
    font-size: 1.2rem;
    outline: none;
    box-sizing: border-box;
}
.wish-name:focus {
    border-color: var(--orange1);
}

.wish-submit-btn {
    background: var(--orange1);
    color: white;
    border: none;
    padding: 6px 14px;
    font-family: 'Source Code Pro', monospace;
    font-size: 1.2rem;
    cursor: pointer;
    white-space: nowrap;
}
.wish-submit-btn:hover {
    background: var(--orange2);
}
.wish-submit-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.char-counter {
    font-size: 1rem;
    color: #87877d;
    text-align: right;
    margin-top: 4px;
}

.contact-form-message {
    font-size: 1rem;
    margin-top: 8px;
    min-height: 1em;
}

.contact-fallback {
    font-size: 1rem;
    color: #87877d;
    margin-top: 10px;
}
.contact-fallback a {
    color: var(--orange1);
}

.contact-links {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 16px;
}

.contact-link {
    font-size: 1.2rem;
    color: #d4d4d4;
    padding: 6px 0;
    border-bottom: 1px solid var(--dark3);
    transition: color 0.2s;
}
.contact-link:hover {
    color: var(--orange1);
}

.wishing-well-icon {
    float: left;
    width: 80px;
    height: 80px;
    margin: 0 12px 8px 0;
    color: var(--orange1);
    opacity: 0.8;
}

/* ---------- Mobile Styles ---------- */

@media only screen and (max-width: 600px) {
	.tab_icon {
		display: none;
	}

	.tab_container > .tab:first-child {
		margin-left: var(--tab-gap);
	}

	.tab_container > .tab:last-child {
		margin-right: 4px;
	}

	.tab_container > .tab {
		font-size: 1rem;
		padding-top: 1em;
		padding-left: 0.30em;
		padding-right: 0.30em;
	}

	.typing-animation-container {
		height: 150px;
	}

	.typing-animation {
		font-size: 1em;
	}

	.button-container {
		height: 100px;
		margin-top: 40px;
		display: block;
	}

	.button-container > button {
		width: 100%;
		font-size: 1rem;
		margin: 0.5em 0;
		padding: 1em;
	}

	.slide-section > .section-content {
		padding: 10px;
		width: 100%;
	}

	.conv-message {
		font-size: 1rem;
	}

	.conv-choice-btn {
		font-size: 1rem;
	}

	.conv-end-hint {
		font-size: 1rem;
	}

	/* Allow 3 lines of choice buttons on mobile */
	.conv-choices-bar {
		min-height: 180px;
	}

	.proj-comment {
		font-size: 0.9rem;
	}

	.proj-wrapper .about-block,
	.proj-wrapper .proj-comment {
		max-width: 100%;
	}

	.second-section-content > div {
		font-size: 1rem;
	}

	.orange-font {
		font-size: 1rem;
	}

	.slide-section__title {
		font-size: 1rem;
	}

	.about-block {
		font-size: 1rem;
	}

	.about-expand-link {
		font-size: 1rem;
	}

	.collab-link {
		font-size: 1rem;
	}

	.wish-form-row {
		flex-direction: column;
		align-items: stretch;
	}

	.wish-name,
	.wish-submit-btn {
		width: 100%;
		box-sizing: border-box;
	}
}