

/* Reset CSS */
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
a,
a:visited {
    text-decoration: none;
    color: #ffffff;
}
p{
    color:#fff;
    font-weight:400;
}
ul{
    list-style: none;
}

body {
    background-color: #000000;
    font-family: 'Syne', sans-serif;
    padding-top: 60px;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.contact-panel textarea::-webkit-scrollbar {
    width: 8px;
}
.contact-panel textarea::-webkit-scrollbar-track {
    background: #111;
}
.contact-panel textarea::-webkit-scrollbar-thumb {
    background-color: #555555;
    border-radius: 8px;
    border: 2px solid #111;
}

.header {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 1000;
    background: linear-gradient(to bottom, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0) 100%);
}
.header__content{
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height:60px;
    width: 100%;
    padding: 0 40px;
}

/* Logo lives outside the header stacking context so mix-blend-mode
   composites directly against the scrolling page content */
.logo-blend-wrap {
    position: fixed;
    top: 0;
    left: 40px;
    z-index: 1001;
    height: 60px;
    display: flex;
    align-items: center;
    mix-blend-mode: difference;
    pointer-events: auto;
}
.logo{
}
.logo__image {
    font-family: 'Syne', sans-serif;
    font-weight: 800;
    font-size: 1.1rem;
    color: #fff;
    letter-spacing: 0.08em;
    line-height: 1;
    display: block;
    transition: color 0.2s ease;
}
.logo-blend-wrap:hover .logo__image {
    color: #E90017;
}
.nav{
}
.nav__link{
    color: #fff;
    font-size: 15px;
    font-weight: 700;
}
.nav__list{
    display:flex;
    column-gap: 3rem;
}
.nav__item{
}
.nav__link {
    color: #ffffff;
    transition: color 0.2s ease;
    text-shadow:
        0 0 6px  rgba(0,0,0,0.5),
        0 1px 3px rgba(0,0,0,0.6);
}

.nav__link:hover,
.nav__link:focus {
    color: #E90017;
    -webkit-text-stroke: 0.3px #E90017;
    text-shadow:
        0 0 6px  rgba(0,0,0,0.5),
        0 1px 3px rgba(0,0,0,0.6);
}

.nav__link.nav__link--active:hover,
.nav__link.nav__link--active:focus {
    color: #E90017; /* light up when hovered even if active */
}


/* DROPDOWN */

.nav__item__dropdown {
    position: relative;
    padding: 8px 16px;
    margin: -8px -16px;
}

.nav__item__dropdown::after {
    content: '';
    position: absolute;
    bottom: -20px;
    left: -16px;
    right: -16px;
    height: 20px;
}

.nav__item__dropdown .nav__link:hover,
.nav__item__dropdown .nav__link:focus {
    color: #E90017;
    -webkit-text-stroke: 0.3px #E90017;
}

.nav__link.nav__link--active {
    color: #E90017;
    -webkit-text-stroke: 0.3px #E90017;
}

/* Dropdown container */
.dropdown {
    position: absolute;
    top: calc(100% + 8px);
    left: 60%;
    background: radial-gradient(circle at 120% 40%, #0f0f0f 0%, #000000 70%);
    border-radius: 6px;
    padding: 7px 0;
    min-width: 180px;
    display: flex;
    flex-direction: column;

    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(10px);
    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        visibility 0.2s ease;

    box-shadow: none;
    z-index: 1002;
}
.dropdown::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 6px;
    padding: 1px;
    background: linear-gradient(to bottom left, #ffffff, #555555);
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: destination-out;
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
    pointer-events: none;
    z-index: -1;
}

.nav__num {
    display: none;
}

/* Dropdown links */
.dropdown li a {
    padding: 11.5px 18px;
    font-size: 14px;
    font-weight: 700;
    color: #ffffff;
    display: block;
    white-space: nowrap;
    transition: color 0.2s ease, background 0.2s ease;
}
.dropdown li a.nav__link--current,
.footer__nav a.nav__link--current {
    color: #E90017;
}
.dropdown li a.nav__link--current .nav__num {
    color: #E90017;
}
.nav__item__dropdown.dropdown-open .dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}
/* Hover state */
.dropdown li a:hover {
    color: #E90017;
}
.dropdown li a:hover .nav__num {
    color: #E90017;
}

.dropdown li:not(:last-child) {
    border-bottom: 1px solid rgba(255,255,255,0.13);
}
/* Show dropdown on hover */
.nav__item__dropdown:hover .dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
}

/* END OF DROPDOWN */

/* HAMBURGER */
.nav__hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    width: 22px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    filter: drop-shadow(0 1px 4px rgba(0,0,0,0.7));
}
.nav__hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background-color: #fff;
    border-radius: 2px;
    transition: transform 0.25s ease, opacity 0.2s ease;
    text-shadow: none;
}
.nav__hamburger--open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.nav__hamburger--open span:nth-child(2) {
    opacity: 0;
}
.nav__hamburger--open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}
/* END HAMBURGER */

.home__container{
    margin-top: calc(-0.5rem + 3px);
}   
.intro__content{
    padding-top: 1rem;
    padding-left: 40px;
}
.about__container{

}  
.intro__content__about{
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.intro_eyebrow__about{
    color: #fff;
    font-size: clamp(1.5rem, 1.8vw, 6rem);
    font-weight: 700;
}
.intro__title__about{
    color: #E90017;
    font-size: clamp(3rem, 3vw + 1.2rem, 4.5rem);
    font-weight: 700;
    white-space: nowrap;
}
.intro__title__index{
    color: #fff;
    font-size: clamp(1.5rem, 2.8vw, 9.5rem);
    font-weight: 700;
}
.intro__content__about p {
    margin-bottom: 1.5rem;
    font-weight: 400;
    font-size: clamp(1rem, 0.8vw + 0.85rem, 1.2rem);
    max-width: 60ch;
    line-height: 1.51;
    color:#ebebeb;
}
.intro__paragraphs__about{
    margin-top: 0.5rem;
    padding-bottom: 1.5rem;
}
.intro__paragraphs__about a{
    text-decoration: underline;
}
.intro__paragraphs__about a:hover{
    color: #E90017;
    transition: color 0.2s ease;
}
.grid-container-about {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 1.2rem;
    margin-top: 0px;
    margin-bottom: 3.7rem;
    width: 100%;
    padding: 0 40px;
    grid-auto-rows: minmax(200px, auto);
}

/* PROJECT PAGE */
.intro__group{
    width: 100%;
    max-width: calc(41.667% - 0.583rem);
}
.intro__project__title{
    color: #E90017;
    font-size: clamp(2.25rem, 2.5vw + 1rem, 3.5rem);
    font-weight: 700;
    line-height: 1.1;
    padding-bottom: 1rem;
}

.intro__project__paragraphs{
    color:#ebebeb;
    font-size: clamp(1.25rem, 1.1vw + 1rem, 1.45rem);
    line-height: 1.45;
    border-top: 1px solid rgba(255,255,255,0.20);
    padding-top: 1.5rem;
    width: 100%;
}
.intro__project__para1{
    color:#ebebeb;
}
/* Project challenge */
.challenge__group{
}
.challenge__header__group{
    padding-bottom: 1.5rem;
}
.challenge__title{
    color:#fff;
    font-size: clamp(2.5rem, 2vw + 1rem, 3rem);
}
.challenge__subtitle{
    color:#ebebeb;
    font-size: clamp(1.25rem, 1.1vw + 1rem, 1.45rem);

}
.challenge__description{
    color:#ebebeb;
    line-height: 1.3;
    font-size: clamp(1rem, 1vw + 1rem, 1.2rem);
}
/* Project solution */
.solution__group{

}
.solution__header__group{
    padding-bottom: 1.5rem;
}
.solution__title{
    color:#fff;
    font-size: clamp(2.5rem, 2vw + 1rem, 3rem);
}
.solution__subtitle{
    color:#ebebeb;
    font-size: clamp(1.25rem, 1.1vw + 1rem, 1.45rem);
}
.solution__description{
    color:#ebebeb;
    line-height: 1.3;
    font-size: clamp(1rem, 1vw + 1rem, 1.2rem);
}
/* Project meta (Team / My role) */
.intro__project__para1 {
    margin-bottom: 0;
}
.intro__project__meta {
    padding-top: 1.75rem;
    text-align: left;
}
.intro__project__meta__line {
    font-family: 'DM Sans', sans-serif;
    font-weight: 400;
    color: rgba(255,255,255,0.48);
    font-size: clamp(0.875rem, 0.6vw + 0.75rem, 1rem);
    line-height: 1.35;
    margin-bottom: clamp(0.9rem, 0.5vw + 0.75rem, 1.25rem);
}
.intro__project__meta__line:last-child {
    margin-bottom: 0;
}
.meta-label {
    font-weight: 400;
    color: rgba(255,255,255,0.48);
}
/* Project grid */
.project3-raven-wrap {
    position: absolute;
    top: clamp(30px, calc(526px - 32.9vw), 270px);
    right: -20px;
    width: 52%;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    animation: hand-float-y 6s ease-in-out infinite;
}

.project3-raven-bg {
    width: 100%;
    filter: brightness(0) invert(1) sepia(1) saturate(4) hue-rotate(195deg);
    opacity: 0.10;
    animation: raven-float-x 9s ease-in-out infinite;
}

@keyframes raven-float-x {
    0%   { transform: rotate(-10deg) translateX(0px); }
    50%  { transform: rotate(-9deg) translateX(8px); }
    100% { transform: rotate(-10deg) translateX(0px); }
}

.project2-pets-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0.20;
    pointer-events: none;
    z-index: 0;
}

.project2-pet-wrap {
    position: absolute;
    pointer-events: none;
    user-select: none;
}

.project2-pet-wrap--dog {
    top: clamp(60px, calc(530px - 32vw), 180px);
    right: 6%;
    width: 38%;
    animation: hand-float-y 7s ease-in-out infinite;
}
.project2-pet-wrap--dog::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 45%;
    background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.55));
    pointer-events: none;
}

.project2-pet-wrap--cat {
    top: clamp(72px, calc(500px - 30vw), 195px);
    right: -2%;
    width: 52%;
    animation: hand-float-y 9s ease-in-out infinite;
    animation-delay: -3.5s;
}

.project2-pet-img {
    width: 100%;
    animation: pet-float-x 11s ease-in-out infinite;
    -webkit-mask-image: linear-gradient(to bottom, black 55%, transparent 82%);
    mask-image: linear-gradient(to bottom, black 55%, transparent 82%);
}

.project2-pet-img--dog {
    filter: hue-rotate(172deg) saturate(0.65) brightness(0.48);
}

.project2-pet-img--cat {
    filter: hue-rotate(175deg) saturate(0.7) brightness(0.62);
    animation-duration: 8s;
    animation-delay: -5s;
}

@keyframes pet-float-x {
    0%   { transform: translateX(0px); }
    50%  { transform: translateX(8px); }
    100% { transform: translateX(0px); }
}

.project1-hands-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0.29;
    pointer-events: none;
    z-index: 0;
}

.project1-hand-wrap {
    position: absolute;
    top: clamp(-90px, calc(358px - 28vw), 50px);
    right: 5%;
    width: 68%;
    pointer-events: none;
    user-select: none;
    animation: hand-float-y 6s ease-in-out infinite;
    opacity: 0.7;
}

.project1-hand-bg {
    width: 100%;
    transform: rotate(-20deg);
    transform-origin: center top;
    -webkit-mask-image: linear-gradient(to bottom, black 70%, transparent 92%);
    mask-image: linear-gradient(to bottom, black 70%, transparent 92%);
    animation: hand-float-x 9s ease-in-out infinite;
}

.project1-hand-wrap--green {
    top: clamp(-30px, calc(370px - 26vw), 90px);
    right: -9%;
    animation-delay: -3s;
    opacity: 0.7;
}

.project1-hand-bg--green {
    animation-name: hand-float-x-green;
    animation-delay: -4.5s;
}

@keyframes hand-float-y {
    0%   { transform: translateY(0px); }
    50%  { transform: translateY(-18px); }
    100% { transform: translateY(0px); }
}

@keyframes hand-float-x {
    0%   { transform: rotate(-20deg) translateX(0px); }
    50%  { transform: rotate(-18.5deg) translateX(8px); }
    100% { transform: rotate(-20deg) translateX(0px); }
}

@keyframes hand-float-x-green {
    0%   { transform: rotate(-20deg) scaleX(-1) translateX(0px); }
    50%  { transform: rotate(-18.5deg) scaleX(-1) translateX(-8px); }
    100% { transform: rotate(-20deg) scaleX(-1) translateX(0px); }
}

.grid-container-project {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 1.2rem;
    margin-top: 20px;
    margin-bottom: 0;
    width: 100%;
    position: relative;
    padding: 0 40px;
    grid-auto-rows: auto;
}
.box.box-project-1 {
    grid-column: 1 / span 12;
    grid-row: 1 / span 1;

    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    text-align: left;
    padding: 1rem 0 3.2rem 0;
    background: transparent;
    border-radius: 0;
    overflow: visible;
    min-height: 0;
    z-index: 0;
}
.box.box-project-1::before{
    display: none;
}

.box.box-project-2 {
    grid-column: 1 / span 5;
    grid-row: 2 / span 3;
    min-height: 720px;
}
.box.box-project-3 {
    grid-column: 6 / span 3;
    grid-row: 2 / span 3;
    min-height: 720px;
}
.box.box-project-4 {
    grid-column: 9 / span 4;
    grid-row: 2 / span 6;
    min-height: 720px;
}
.box.box-project-5 {
    grid-column: 1 / span 3;
    grid-row: 5 / span 3;
    min-height: 720px;
}
.box.box-project-6 {
    grid-column: 4 / span 5;
    grid-row: 5 / span 3;
    min-height: 720px;
}
.box-project-7 {
    grid-column: 1 / span 6;
    grid-row: 8 / span 1;
    color: #000;
    background-color: #000 !important;
    padding-top: 2rem;
    padding-bottom: 3.5rem;
    padding-right: 5.5rem;
    min-height: 0 !important;
}
.box-project-8 {
    grid-column: 7 / span 6;
    grid-row: 8 / span 1;
    color: #000;
    background-color: #000 !important;
    padding-top: 2rem;
    padding-bottom: 3.5rem;
    padding-right: 2rem;
    min-height: 0 !important;
}
/* END OF PROJECT PAGE */

.grid-container {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-template-rows: auto auto;
    gap: 1.2rem;
    margin-top: 40px;
    margin-bottom: 3.7rem;
    width: 100%;
    padding: 0 40px;
}

/* Project pair wrappers — each project gets a connecting red outline */
.project-pair {
    display: grid;
    gap: 1.2rem;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 0 0 2px transparent;
    transition: box-shadow 0.3s ease;
    position: relative;
}
.project-pair.pair-active { box-shadow: 0 0 0 2px #E90017; }
.project-pair .box { min-height: 0; }
.project-pair .box-hover-label { z-index: 11; }
.project-pair.pair-active .box-hover-label {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.07);
}
.project-pair.pair-active .box-hover-arrow {
    opacity: 1;
    transform: translateX(0) rotate(-45deg);
}

/* P1 — top-left, side by side (5:3 ratio mirrors original) */
.pair-1 {
    grid-column: 1 / span 8;
    grid-row: 1;
    grid-template-columns: 5fr 3fr;
    min-height: 500px;
}

/* P2 — right column, stacked vertically, spans both rows */
.pair-2 {
    grid-column: 9 / span 4;
    grid-row: 1 / span 2;
    grid-template-rows: 1fr 1fr;
}

/* P3 — bottom-left, side by side (3:5 ratio mirrors original) */
.pair-3 {
    grid-column: 1 / span 8;
    grid-row: 2;
    grid-template-columns: 3fr 5fr;
    min-height: 500px;
}

/* Pair active: dim + label on all boxes in the pair */
a.box.pair-active::before { opacity: 1; }
a.box.pair-active .box-hover-label {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.07);
}
a.box.pair-active .box-hover-arrow {
    opacity: 1;
    transform: translateX(0) rotate(-45deg);
}

.box {
    background-color: #1E1E1E;
    min-height: 400px;
    border-radius: 18px;
    transition: all 0.4s ease;
    overflow: hidden;
    position: relative;
    display: block;
}
a.box {
    cursor: pointer;
}
a.box::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 2;
    border-radius: inherit;
}
.box-hover-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1);
    display: block;
    color: #fff;
    font-family: 'Syne', sans-serif;
    font-size: 1.875rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
    opacity: 0;
    transition: opacity 0.3s ease, transform 0.3s ease;
    z-index: 3;
    pointer-events: none;
    white-space: nowrap;
    text-align: left;
}
.box-hover-arrow {
    display: inline-block;
    width: 14px;
    height: 14px;
    border-right: 2.5px solid #fff;
    border-bottom: 2.5px solid #fff;
    transform: translateX(-8px) rotate(-45deg);
    opacity: 0;
    vertical-align: middle;
    margin-left: 6px;
    margin-bottom: 3px;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
a.box:hover .box-hover-arrow {
    opacity: 1;
    transform: translateX(0) rotate(-45deg);
}
a.box:hover::before,
a.box:hover .box-hover-label {
    opacity: 1;
}
a.box:hover .box-hover-label {
    transform: translate(-50%, -50%) scale(1.07);
}
.box img {
    width: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 0;
    display: block;
    overflow: hidden;
}

.parallax-img {
    width: 100%;
    height: 120%;
    object-fit: cover;
    transform: translateY(0);
    will-change: transform;
    top: 0;
    left: 0;
    position: absolute;
}
video.parallax-img:fullscreen,
video.parallax-img:-webkit-full-screen {
    position: static;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform: none;
}


.box-about-1{
    grid-column: 1 / span 6;
    grid-row: 1 / span 1;
    color: #000;
    background-color: #000 !important;
    padding-left: 3rem;
    padding-right: 4rem;
    display: flex;
    align-items: center;
}
.box-about-2{
    grid-column: 7 / span 6;
    grid-row: 1 / span 1;
    min-height: 520px;
}
.box-about-3{
    grid-column: 1 / span 4;
    grid-row: 2 / span 3;
}
.box-about-4{
    grid-column: 5 / span 8;
    grid-row: 2 / span 3;
}

.resume-download a:hover,
.resume-download a:focus {
  color: #E90017;
}
.resume-download {
    color:#ebebeb;
}
.resume-download a {
    color: #ffffff;
    transition: color 0.2s ease;
    font-size: clamp(1.25rem, 1.1vw + 1rem, 1.45rem);
    text-decoration: underline;
    white-space: nowrap;
}
h1 {
    margin-top: 0px;
    margin-bottom: 0px;
}
.resume-layout-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    padding: 0px 40px 4rem;
    margin-top: clamp(0px, calc(2.5vw - 30px), 0.6rem);
}
.resume-left {
    text-align: center;
    width: 100%;
    max-width: 860px;
}
.resume-right {
    overflow: hidden;
    width: 100%;
    max-width: 860px;
}
.resume-title {
    color: #E90017;
    font-size: clamp(3rem, 3vw + 1.2rem, 4.5rem);
    /* font-size: clamp(3rem, 3vw + 1.2rem, 12.5rem); */
    /* font-size: clamp(3rem, 4.2vw, 12.5rem); */
    /* font-size: clamp(3rem, 1.5vw + 2.5rem, 12.5rem); */
    font-weight: 700;
}
.resume-embed {
    background: #1E1E1E;
    border-radius: 16px;
    overflow: hidden;
}

.resume-right img {
    width: 100%;
    height: auto;
    display: block;
}

/* CONTACT PAGE LAYOUT */

.contact-grid-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 800px;
    margin: clamp(0px, calc(2.5vw - 30px), 0.6rem) auto 0;
    padding: 0px 40px 90px;
    gap: 2rem;
    flex: 1;
    width: 100%;
}
.contact-title {
    color: #E90017;
    font-size: clamp(3rem, 3vw + 1.2rem, 4.5rem);
    font-weight: 700;
}
.contact-subtitle {
    color:#ebebeb;
    font-size: clamp(1.25rem, 1.1vw + 1rem, 1.45rem);
}
.contact-left {
    width: 100%;
    text-align: center;
}
.contact-right {
    width: 100%;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.contact-panel {
    position: relative;
    min-width: 300px;  
    border-radius: 28px;
    padding: 36px 85px;
    background: radial-gradient(circle at 120% 40%, #0f0f0f 0%, #000000 70%);
    overflow: hidden;
    z-index: 0;
}
.contact-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 28px;
    padding: 1px;
    background: linear-gradient(to bottom left, #ffffff, #555555);
    -webkit-mask:
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
    -webkit-mask-composite: destination-out;
    mask-composite: exclude;
    pointer-events: none;
    z-index: -1;
}
/* FORM */

.contact-row {
    display: flex;
    gap: 4.3rem;
    margin-bottom: 2.5rem;
}
.field label {
    font-size: 0.9rem;
    color: #fff;
    margin-bottom: 0.4rem;
    display: block;
    font-weight: 600;
}
.field {
  width: 100%;
}
.field input {
    background: transparent;
    border: none;
    border-bottom: 1px solid #8f8f8f;
    padding: 8px 0;
    color: rgb(173, 173, 173);
    width: 100%;
}
.field input:focus {
    outline: none;
    border-bottom-color: #E90017;
}
.field textarea {
    width: 100%;
    height: 207px;
    background: #161616;
    border: none;
    border-radius: 15px;
    padding: 12px;
    color: white;
    resize: none;
    margin-top: 0.5rem;
}
.field textarea:focus {
    outline: none;
    box-shadow: 0 0 0 1px #E90017;
}
.field input,
.field textarea {
    font-family: 'Syne', sans-serif;
    font-size: 1rem;
    font-weight: 400;
}
/* BUTTON */

.contact-btn {
    display: block;
    margin: 30px auto 0;
    background: #E90017;
    border: 2px solid #E90017;
    padding: 11px 42px;
    border-radius: 999px;
    font-family: 'Syne', sans-serif;
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.contact-btn:hover {
    background: #000;
    color: #fff;
    transform: scale(1.09);
}
.contact-btn:active {
    background: #233a46;
    transform: scale(0.98);
}
.contact-btn--outline {
    background: #000;
}
.contact-btn--outline:hover {
    background: #E90017;
    color: #fff;
}
a.contact-btn {
    display: inline-block;
    text-decoration: none;
    color: inherit;
}
.resume-download-btn {
    margin: 4px 0 0;
    background: transparent;
    border: 2px solid #E90017;
    color: #fff !important;
    padding: 11px 42px;
    font-size: 1.2rem;
}
.resume-download-btn:hover {
    background: #E90017;
    color: #fff;
}
.resume-download-btn:active {
    background: #c40013;
    border-color: #c40013;
    color: #fff;
}

@media (max-width: 1380px) {
    .box-about-1 {
        padding-left: 0;
        padding-right: 25%;
    }
}


@media (max-width: 1100px) {
    .project3-raven-wrap,
    .project1-hands-container,
    .project2-pets-container {
        display: none;
    }
        .grid-container { grid-template-columns: 1fr; grid-template-rows: auto; gap: 1rem; margin-bottom: 40px; }
        .pair-1, .pair-2, .pair-3 { grid-column: 1; grid-row: auto; grid-template-rows: auto; min-height: 0; border-radius: 14px; }
        .box-hover-label { font-size: 1.4rem; max-width: 80%; white-space: normal; }
        .box-hover-arrow { width: 10px; height: 10px; border-right-width: 2px; border-bottom-width: 2px; margin-left: 5px; }
        .pair-2 { grid-template-columns: 1fr 1fr; }
        .pair-1 .box, .pair-2 .box, .pair-3 .box { min-height: 300px; }
        .grid-container-about{
        grid-template-columns: repeat(6, 1fr);
        gap: 1.25rem;
        margin-bottom: 40px;
        }
        .grid-container-project{
        grid-template-columns: repeat(6, 1fr);
        gap: 0.75rem;
        margin-bottom: 40px;
        }
        .intro__group {
        max-width: calc(66.667% - 0.25rem);
        }
        .nav__list{
        column-gap:3rem;
        }
        .box{
            min-height: 500px;
            border-radius: 14px;
        }

        .box-about-1{
        grid-column: 1 / span 6;
        grid-row: 1 / span 1;
        color: #000;
        background-color: #000;
        padding-left: 0;
        padding-right: 15%;
        min-height: 0;
        align-items: flex-start;
        }
        .intro__content__about {
            padding-top: clamp(1rem, 4vw - 1.5rem, 2.5rem);
        }
        .box-about-2{
        grid-column: 1 / span 6;
        grid-row: 2 / span 3;
        }
        .box-about-3{
        grid-column: 1 / span 6;
        grid-row: 5 / span 3
        }
        .box-about-4{
        grid-column: 1 / span 6;
        grid-row: 8 / span 3;
        }
        .intro__content__about p {
        font-size: clamp(1.1rem, 1vw + 0.85rem, 1.3rem);
        }

        .box.box-project-1{
        grid-column: 1 / span 6;
        grid-row: 1 / span 1;
        }
        .box.box-project-2{
        grid-column: 1 / span 4;
        grid-row: 2 / span 3;
        }
        .box.box-project-3{
        grid-column: 5 / span 2;
        grid-row: 2 / span 3;
        }
        .box.box-project-4{
        grid-column: 1 / span 2;
        grid-row: 5 / span 3;
        }
        .box.box-project-5{
        grid-column: 3 / span 4;
        grid-row: 5 / span 3;
        }
        .box.box-project-6{
        grid-column: 1 / span 6;
        grid-row: 8 / span 3;
        }
        .box-project-7{
        grid-column: 1 / span 3;
        grid-row: 11 / span 1;
        padding-right: 2.5rem;
        min-height: 0;
        }
        .box-project-8{
        grid-column: 4 / span 3;
        grid-row: 11 / span 1;
        min-height: 0;
        }
}

@media (max-width: 1280px) {
    .nav__list {
        column-gap: 2rem;
    }
    .nav__link {
        font-size: 14px;
    }
}

@media (max-width: 1000px) {
    .nav__list {
        column-gap: 1.5rem;
    }
    .nav__link {
        font-size: 13px;
    }
}

@media (max-width: 870px) {
    .grid-container {
    gap: 1.2rem;
        margin-top: 20px;
    margin-bottom: 40px;
    }
    .grid-container-about{
    grid-template-columns: repeat(6, 1fr);
    gap: 1.25rem;
    margin-bottom: 40px;
    }
    .grid-container-project{
    grid-template-columns: repeat(6, 1fr);
    gap: 0.75rem;
    margin-bottom: 40px;
    }
    .box-project-7, .box-project-8 {
        min-height: 0;
    }
      .intro__content{
    padding-top: 1rem;
    padding-left: 40px;
    }
    .box{
        min-height: 420px;
        border-radius: 12px;
    }
    .pair-1, .pair-2, .pair-3 { border-radius: 12px; }
    .header__content{
    padding: 0 24px;
    }
    .nav__list{
    column-gap: 1.25rem;
    }
    .nav__link {
    font-size: 13px;
    }
    .home__container{
    margin-top: .2rem;
    }
    .box-about-1{
    grid-column: 1 / span 6;
    grid-row: 1 / span 1;
    min-height: 0;
    align-items: flex-start;
    padding-left: 0;
    padding-right: 0;
    }
    .box-about-2{
    grid-column: 1 / span 6;
    grid-row: 2 / span 3;
    }
    .box-about-3{
    grid-column: 1 / span 6;
    grid-row: 5 / span 3
    }
    .box-about-4{
    grid-column: 1 / span 6;
    grid-row: 8 / span 3;
    }
    .intro__project__paragraphs{
    color:#ebebeb;
    font-size: clamp(1.1rem, 1.3vw + .6rem, 1rem);
    line-height: 1.5;
    }
    .challenge__description, .solution__description{
    color:#ebebeb;
    line-height: 1.4;
    font-size: clamp(1.1rem, 1.3vw + .6rem, 1rem);
    }
    .challenge__header__group, .solution__header__group{
    padding-bottom: 1rem;
    }
}


@media (max-width: 680px) {
    .grid-container {
    grid-template-columns: 1fr;
    gap: 0.9rem;
    margin-top: 10px;
    margin-bottom: 40px;
    padding: 0 16px;
    }
    .pair-1, .pair-2, .pair-3 {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    min-height: 0;
    }
    .pair-1 .box, .pair-2 .box, .pair-3 .box { min-height: 340px; }
    .pair-1, .pair-2, .pair-3 { border-radius: 12px; }
    .box-hover-label { font-size: 1.1rem; max-width: 80%; white-space: normal; }
    .box-hover-arrow { width: 8px; height: 8px; border-right-width: 1.5px; border-bottom-width: 1.5px; margin-left: 4px; }
    .footer__heading-link { pointer-events: none; cursor: default; }
    .grid-container-about{
    grid-template-columns: repeat(6, 1fr);
    gap: 1.22rem;
    margin-top: 10px;
    margin-bottom: 40px;
    padding: 0 16px;
    }
    .grid-container-project{
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: auto;
    gap: 1.22rem;
    margin-top: 10px;
    margin-bottom: 40px;
    padding: 0 16px;
    }
    .box.box-project-2, .box.box-project-3, .box.box-project-4,
    .box.box-project-5, .box.box-project-6 {
        min-height: 460px;
    }
    .contact-panel {
    position: relative;
    min-width: 300px;
    border-radius: 12px;
    padding: 30px 35px;
    background: radial-gradient(circle at 120% 40%, #0f0f0f 0%, #000000 70%);
    overflow: hidden;
    z-index: 0;
    }
    .contact-panel::before {
    border-radius: 12px;
    }
    .intro__content__about p {
        margin-bottom: 1rem;
        font-size: clamp(1rem, 1.2vw + .6rem, 1rem);
        line-height: 1.46;
    }
    .intro__project__title{
        font-size: clamp(2rem, 3vw + 1rem, 4rem);
        padding-bottom: .8rem;
    }
    .resume-title {
        font-size: clamp(2.5rem, 3vw + 1rem, 4rem);
    }
    .resume-download a {
        font-size: clamp(1rem, 1vw + .5rem, 1.3rem);
    }
    .contact-title {
        font-size: clamp(2.5rem, 3vw + 1rem, 4rem);
        font-weight: 700;
    }
    .contact-subtitle {
        color:#ebebeb;
        font-size: clamp(1rem, 1vw + .5rem, 1.3rem);
    }
    .intro_eyebrow__about{
        font-size: clamp(1.45rem, 1.8vw, 6rem);
        font-weight: 700;
    }
    .intro__title__about{
        font-size: clamp(2.5rem, 3vw + 1rem, 4rem);
        font-weight: 700;
    }
    .contact-row {
        display: flex;
        gap: 2rem;
        margin-bottom: 2rem;
    }
    .intro__content{
        padding-top: 1rem;
        padding-left: 16px;
        padding-right: 16px;
    }
    .home__container {
        margin-top: 10px;
    }
        .intro__title__index{
            font-size: clamp(1rem, 4.2vw, 1.5rem);
            line-height: 1.4;
        }
        .resume-right {
            border-radius: 0;
        }
        .nav__list{
        column-gap:2rem;
        }

        .box{
            min-height: 355px;
            border-radius: 12px;
        }
        .box-1{
            grid-column: 1 / span 6; 
            grid-row: 1 / span 1;
        }
        .box-2{
            grid-column: 1 / span 6; 
            grid-row: 2 / span 1;
        }
        .box-3{
            grid-column: 1 / span 6; 
            grid-row: 3 / span 1;
        }
        .box-4{
            grid-column: 1 / span 6; 
            grid-row: 4 / span 1;
        }
        .box-5{
            grid-column: 1 / span 6; 
            grid-row: 5 / span 1;
        }
        .box-6{
            grid-column: 1 / span 6; 
            grid-row: 6 / span 1;
        }
        .box-about-1{
        grid-column: 1 / span 6;
        grid-row: 1 / span 1;
        min-height: 0;
        align-items: flex-start;
        padding-left: 0;
        padding-right: 0;
        padding-top: 1rem;
        }
        .intro__content__about {
            padding-top: 0;
        }
        .box-about-2{
        grid-column: 1 / span 6;
        grid-row: 2 / span 2;
        }
        .box-about-3{
        grid-column: 1 / span 6;
        grid-row: 4 / span 2;
        }
        .box-about-4{
        grid-column: 1 / span 6;
        grid-row: 6 / span 2;
        }
        .intro__project__paragraphs{
            color:#ebebeb;
            font-size: clamp(1rem, 1.2vw + .6rem, 1rem);
            line-height: 1.35;
        }
        .intro__project__meta {
            padding-top: 1.25rem;
        }
        .challenge__description, .solution__description{
        color:#ebebeb;
        line-height: 1.35;
        font-size: clamp(1rem, 1.2vw + .6rem, 1rem);
        }
        .box.box-project-1{
        grid-column: 1 / span 6;
        grid-row: 1 / span 1;
        border-radius: 0;
        background: transparent;
        min-height: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
        padding: 1rem 0 2.25rem 0;
        }
        .intro__group {
        max-width: 100%;
        }
        .box.box-project-1::before{
        display: none;
        }
        .box.box-project-2{
        grid-column: 1 / span 6;
        grid-row: 2 / span 1;
        }
        .box.box-project-3{
        grid-column: 1 / span 6;
        grid-row: 3 / span 1;
        }
        .box.box-project-4{
        grid-column: 1 / span 6;
        grid-row: 4 / span 1;
        }
        .box.box-project-5{
        grid-column: 1 / span 6;
        grid-row: 5 / span 1;
        }
        .box.box-project-6{
        grid-column: 1 / span 6;
        grid-row: 6 / span 1;
        }
        .box-project-7{
        min-height: 0;
        grid-column: 1 / span 6;
        grid-row: 7 / span 1;
        padding: 1.5rem 1rem 1.5rem 0;
        }
        .box-project-8{
        min-height: 0;
        grid-column: 1 / span 6;
        grid-row: 8 / span 1;
        padding: 1.5rem 1rem 1.5rem 0;
        margin-top: -1rem;
        }

    .resume-layout-grid {
        padding-top: 32px;
        padding-left: 16px;
        padding-right: 16px;
    }
    .resume-download-btn {
        padding: 8px 28px;
        font-size: 1rem;
    }
    .contact-btn {
        font-size: 1.1rem;
        padding: 10px 36px;
    }
    .resume-embed {
        border-radius: 12px;
    }
    .contact-grid-container {
        padding-top: 32px;
        padding-left: 16px;
        padding-right: 16px;
    }
    .field textarea {
        height: 288px;
        border-radius: 8px;
    }
    .intro__paragraphs__about {
        border-top: 1px solid rgba(255,255,255,0.18);
        padding-top: 1.25rem;
        padding-bottom: 1.5rem;
        margin-top: 1rem;
        width: 100%;
    }
  }

.resize-no-transition .nav,
.resize-no-transition .dropdown {
    transition: none !important;
}

/* MOBILE NAV — hamburger kicks in at 680px */
@media (max-width: 680px) {
    .header {
        background: none;
    }

    .nav__hamburger {
        display: flex;
        position: relative;
        z-index: 1001;
    }

    .header__content {
        padding: 0 16px;
        justify-content: flex-end;
        min-height: 56px;
    }

    body {
        padding-top: 56px;
    }

    .logo-blend-wrap {
        left: 16px;
        height: 56px;
    }

    /* Nav panel slides in from top */
    .nav {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        background: radial-gradient(circle at 120% 40%, #0f0f0f 0%, #000000 70%);
        padding: 56px 0 0.75rem;
        border-bottom: 1px solid rgba(255,255,255,0.07);
        z-index: 999;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-6px);
        transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
    }

    .nav.nav--open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .nav__list {
        flex-direction: column;
        column-gap: 0;
        row-gap: 0;
        align-items: flex-start;
        width: 100%;
    }

    .nav__item {
        border-bottom: 1px solid rgba(255,255,255,0.07);
        width: 100%;
    }

    .nav__item:first-child {
        border-top: 1px solid rgba(255,255,255,0.07);
    }

    .nav__item:last-child {
        border-bottom: none;
    }

    .nav__link {
        display: block;
        padding: 1.1rem 16px;
        font-size: 18px;
    }

    .nav__item__dropdown {
        padding: 0;
        margin: 0;
    }
    .nav__item__dropdown::after {
        display: none;
    }

    /* Dropdown always visible in mobile nav */
    .dropdown {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        background: transparent;
        border-radius: 0;
        padding: 0 0 0.9rem 0;
        min-width: 0;
        display: flex;
    }
    .dropdown::before {
        display: none;
    }

    .nav__item__dropdown:hover .dropdown {
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .dropdown li:not(:last-child) {
        border-bottom: none;
    }

    .dropdown li a {
        padding: 0.55rem 16px;
        font-size: 15px;
        color: #ffffff;
        margin-left: 0;
    }
    .nav__num {
        display: inline;
        font-family: 'Courier New', Courier, monospace;
        font-weight: 700;
        margin-right: 10px;
        color: #ffffff;
    }
}
/*
  FOOTER */
    .footer-divider {
        height: 1px;
        background-color: rgba(255,255,255,0.22);
        margin: auto 0 1.2rem 0;
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .footer-divider.divider--visible {
        transform: scaleX(1);
    }
    .footer__grid {
        display: flex;
        flex-direction: column;
        gap: 2rem;
    }
    .footer__name {
        font-size: 1.1rem;
        font-weight: 800;
        margin-bottom: 1.1rem;
    }
    .footer__codedby {
        font-size: .9rem;
        font-weight: 600;
        color: #9c9c9c;
        margin-top: 4.5rem;
    }
    .footer__role, .footer__email {
        font-size: .9rem;
        font-weight: 600;
        color: #ffffff;
        margin-bottom: 0.5rem;
    }
    .footer__email:hover {
        color: #E90017;
    }
    .footer__heading {
        font-size: 1.1rem;
        font-weight: 800;
        letter-spacing: 0.08em;
        margin-bottom: 1rem;
    }
    .footer__nav a.footer__heading-link,
    .footer__nav a.footer__heading-link.nav__link--current {
        color: #fff;
        text-decoration: none;
        transition: color 0.2s ease;
    }
    .footer__nav a.footer__heading-link:hover {
        color: #E90017;
    }
    .footer__nav ul {
        list-style: none;
        padding: 0;
    }
    .footer__nav li {
        margin-bottom: 0.75rem;
    }
    .footer__nav a {
        color: white;
        text-decoration: none;
    }

    .footer__nav a:hover {
        color: #E90017;
    }

    .footer {
        color: white;
        padding: 2.5rem;
    }

    @media (min-width: 1024px) {

    }
    
    @media (min-width: 681px) {
        .footer__grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: clamp(1rem, 4vw, 2rem);
        }
        .footer__nav-group {
            display: flex;
            gap: 2rem;
            justify-self: end;
        }
    }

    @media (min-width: 780px) {
        .footer__nav-group {
            gap: 100px;
        }
    }

    @media (max-width: 680px) {
        .footer-divider {
            display: none;
        }
        .footer {
            padding: 2rem 1rem;
        }
        .footer__grid {
            gap: 0;
        }
        .footer__nav-group {
            order: 1;
        }
        .footer__brand {
            order: 2;
            border-top: 1px solid rgba(255,255,255,0.12);
        }
        .footer__name {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0.9rem 0;
            cursor: default;
            font-size: 0.8rem;
            font-weight: 800;
            letter-spacing: 0.08em;
            margin-bottom: 0;
            user-select: none;
        }
        .footer__name::after {
            display: none;
        }
        .footer__brand__body {
            max-height: none;
            overflow: visible;
            padding-bottom: 0.9rem;
        }
        .footer__nav-group {
            display: flex;
            flex-direction: column;
            gap: 0;
            width: 100%;
        }
        .footer__nav {
            border-bottom: 1px solid rgba(255,255,255,0.12);
        }
        .footer__nav:first-child {
            border-top: none;
        }
        .footer__nav:last-child {
            border-bottom: none;
        }
        .footer__heading {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 0.9rem 0;
            cursor: pointer;
            font-size: 0.8rem;
            margin-bottom: 0;
            user-select: none;
        }
        .footer__heading::after {
            content: '';
            width: 6px;
            height: 6px;
            border-right: 1.5px solid rgba(255,255,255,0.7);
            border-bottom: 1.5px solid rgba(255,255,255,0.7);
            transform: rotate(45deg);
            transition: transform 0.25s ease;
            flex-shrink: 0;
            margin-bottom: 2px;
            margin-right: 0.4rem;
        }
        .footer__role {
            color: #9c9c9c;
            font-weight: 400;
            font-size: 1rem;
            margin-bottom: 0.75rem;
        }
        .footer__codedby {
            font-weight: 400;
            font-size: 1rem;
            margin-top: 0;
        }
        .footer__email {
            color: #9c9c9c;
            text-decoration: underline;
            font-weight: 400;
            font-size: 1rem;
            margin-bottom: 0.75rem;
        }
        .footer__nav a {
            font-size: 1.1rem;
        }
        .footer__nav li {
            margin-bottom: 0.75rem;
        }
        .footer__nav--open .footer__heading::after {
            transform: rotate(-135deg);
            margin-bottom: -2px;
        }
        .footer__nav ul {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease;
        }
        .footer__nav--open ul {
            max-height: 300px;
            padding-bottom: 0.9rem;
        }
    }

    @media (max-width: 580px) {
        .footer__grid {
            display: flex;
            flex-direction: column;
            gap: 0;
        }
        .footer__nav-group {
            flex-direction: column;
            gap: 0;
        }
        .footer__codedby {
            margin-top: 0.75rem;
            margin-bottom: 0;
        }
        .footer__email {
            word-break: break-all;
        }
    }

/* PROJECT PREV/NEXT NAV */
.project-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4rem 40px;
    position: relative;
    margin-top: 1rem;
    isolation: isolate;
    contain: layout paint;
}
.project-nav::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: rgba(255,255,255,0.22);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.75s cubic-bezier(0.4, 0, 0.2, 1);
}
.project-nav.divider--visible::before {
    transform: scaleX(1);
}
.project-nav__prev,
.project-nav__next {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.5rem 0.75rem;
    margin: -0.5rem -0.75rem;
}
.project-nav__next {
    align-items: flex-end;
    text-align: right;
}
.project-nav__prev .project-nav__label::before,
.project-nav__next .project-nav__label::after {
    content: '';
    display: inline-block;
    width: 4px;
    height: 4px;
    border-right: 1px solid #888;
    border-bottom: 1px solid #888;
    vertical-align: 2px;
    margin-bottom: 0;
}
.project-nav__prev .project-nav__label::before {
    transform: rotate(135deg);
    margin-right: 4px;
}
.project-nav__next .project-nav__label::after {
    transform: rotate(-45deg);
    margin-left: 4px;
}
.project-nav__label {
    font-family: 'DM Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.12em;
    color: #888;
    text-transform: uppercase;
    display: inline-block;
    transition: color 0.2s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    will-change: transform;
}
.project-nav__prev .project-nav__label {
    transform-origin: left center;
}
.project-nav__next .project-nav__label {
    transform-origin: right center;
}
.project-nav__prev:hover .project-nav__label,
.project-nav__next:hover .project-nav__label {
    transform: scale(1.06);
}
.project-nav__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    transition: color 0.2s ease, transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
    display: inline-block;
    will-change: transform;
}
.project-nav__prev .project-nav__title {
    transform-origin: left center;
}
.project-nav__next .project-nav__title {
    transform-origin: right center;
}
.project-nav__prev:hover .project-nav__title,
.project-nav__next:hover .project-nav__title {
    color: #ffffff;
    transform: scale(1.06);
}
.project-nav__prev:hover .project-nav__label,
.project-nav__next:hover .project-nav__label {
    color: rgba(255,255,255,0.6);
}
.project-nav__prev:hover .project-nav__label::before,
.project-nav__next:hover .project-nav__label::after {
    border-color: rgba(255,255,255,0.6);
}
@media (max-width: 680px) {
    .project-nav {
        padding: 1.6rem 16px 1.65rem;
    }
    .project-nav::before {
        background: rgba(255,255,255,0.12);
    }
    .project-nav::after {
        content: '';
        position: absolute;
        bottom: 0; left: 0; right: 0;
        height: 1px;
        background: rgba(255,255,255,0.12);
    }
    .project-nav__title {
        font-size: 0.95rem;
        color: #fff;
    }
    .resume-layout-grid {
        margin-top: 0;
        padding-top: 10px;
    }
    .resume-right {
        margin-top: 12px;
    }
    .contact-grid-container {
        margin-top: 0;
        padding-top: 10px;
    }
    .contact-panel {
        margin-top: -0.5rem;
        background: #000;
        border-radius: 0;
    }
    .contact-panel::before {
        display: none;
    }
    #success-body {
        font-size: clamp(1rem, 1.2vw + .6rem, 1rem) !important;
        line-height: 1.5;
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
    #form-success .contact-btn {
        font-size: 1rem;
        padding: 9px 32px;
    }
}

/* SKELETON SHIMMER */
@keyframes shimmer-sweep {
    from { transform: translateX(-100%); }
    to   { transform: translateX(250%); }
}
.box::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255, 255, 255, 0.07) 50%,
        transparent 100%
    );
    transform: translateX(-100%);
    animation: shimmer-sweep 1.6s ease-in-out infinite;
    pointer-events: none;
    z-index: 4;
    transition: opacity 0.4s ease;
}
.box.img-loaded::after {
    opacity: 0;
    animation: none;
}

/* LIGHTBOX */
#lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, 0.88);
    align-items: center;
    justify-content: center;
    cursor: default;
}
#lightbox.lightbox--open {
    display: flex;
}
#lightbox-close {
    position: absolute;
    top: 16px;
    right: 20px;
    background: none;
    border: none;
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    z-index: 10001;
    opacity: 0.85;
    padding: 4px 8px;
    transition: opacity 0.2s ease;
}
#lightbox-close:hover { opacity: 1; }

#lightbox-img,
#lightbox-video {
    max-width: 92vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 0;
    box-shadow: 0 16px 64px rgba(0, 0, 0, 0.7);
    cursor: default;
}

/* SCROLL REVEAL */
.reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal--visible {
    opacity: 1;
    transform: translateY(0);
}

    