/* ============================================
   VICTECH.DEV — PORTFOLIO STYLESHEET
   Author: Akhabue E. Victor
   ============================================ */

/* === VARIABLES === */
:root {
    --bg:         #F2F2EE;
    --bg-card:    #E8E8E4;
    --text:       #111111;
    --text-sub:   #4A4A4A;
    --text-muted: #888888;
    --border:     #D0D0CB;
    --transition: 0.35s ease;
    --radius:     3px;
    --max-w:      1200px;
    --px:         clamp(1.5rem, 6vw, 5rem);
}

[data-theme="dark"] {
    --bg:         #0D0D0D;
    --bg-card:    #161616;
    --text:       #F0F0EC;
    --text-sub:   #AAAAAA;
    --text-muted: #555555;
    --border:     #2A2A2A;
}

/* === RESET === */
*, *::before, *::after {
    box-sizing: border-box;
    margin:     0;
    padding:    0;
}

/* === HTML — background here so canvas z-index:-1 stays visible === */
html {
    scroll-behavior:  smooth;
    font-size:        16px;
    background-color: var(--bg);
    transition:       background-color var(--transition);
}

[data-theme="dark"] html {
    background-color: #0D0D0D;
}

body {
    background-color:       transparent;
    color:                  var(--text);
    font-family:            'Sora', sans-serif;
    font-weight:            400;
    line-height:            1.6;
    transition:             color var(--transition);
    -webkit-font-smoothing: antialiased;
}

img {
    max-width: 100%;
    display:   block;
}

a {
    color:           inherit;
    text-decoration: none;
    transition:      color var(--transition);
}

ul { list-style: none; }

button {
    cursor:      pointer;
    border:      none;
    background:  none;
    font-family: inherit;
}

/* === TYPOGRAPHY — SORA EVERYWHERE === */
h1, h2, h3, h4 {
    font-family: 'Sora', sans-serif;
    line-height: 1.15;
    font-weight: 700;
    color:       var(--text);
    transition:  color var(--transition);
}

h1 { font-size: clamp(2rem,   6vw, 4rem);   }
h2 { font-size: clamp(1.5rem, 4vw, 2.5rem); }
h3 { font-size: clamp(1rem,   2vw, 1.3rem); }

p {
    color:       var(--text-sub);
    line-height: 1.75;
    transition:  color var(--transition);
}

/* === LAYOUT === */
.container {
    width:     100%;
    max-width: var(--max-w);
    margin:    0 auto;
    padding:   0 var(--px);
}

.section {
    padding: 5rem 0;
}

/* === LOADER === */
#loader {
    position:         fixed;
    inset:            0;
    background-color: #FFFFFF;
    display:          flex;
    align-items:      center;
    justify-content:  center;
    z-index:          9999;
    transition:       opacity 0.65s ease, visibility 0.65s ease;
}

[data-theme="dark"] #loader {
    background-color: #0D0D0D;
}

#loader.done {
    opacity:    0;
    visibility: hidden;
}

.loader-content {
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    justify-content: center;
    gap:             0.75rem;
    text-align:      center;
}

.loader-count {
    font-family:    'Sora', sans-serif;
    font-size:      2rem;
    font-weight:    600;
    color:          #111111;
    line-height:    1;
    letter-spacing: 0;
}

[data-theme="dark"] .loader-count {
    color: #F0F0EC;
}

.loader-spinner {
    width:            40px;
    height:           40px;
    border:           2px solid #E0E0E0;
    border-top-color: #111111;
    border-radius:    50%;
    animation:        vt-spin 0.75s linear infinite;
}

[data-theme="dark"] .loader-spinner {
    border-color:     #333333;
    border-top-color: #F0F0EC;
}

@keyframes vt-spin {
    to { transform: rotate(360deg); }
}

.loader-label {
    font-family:    'Sora', sans-serif;
    font-size:      0.65rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color:          #888888;
    margin-top:     0;
}

/* === PARTICLE CANVAS === */
#particleCanvas {
    position:       fixed;
    top:            0;
    left:           0;
    width:          100%;
    height:         40%;
    z-index:        -1;
    pointer-events: none;
}

/* === HEADER === */
.site-header {
    position:         fixed;
    top:              0;
    left:             0;
    right:            0;
    z-index:          100;
    background-color: var(--bg);
    border-bottom:    1px solid var(--border);
    transition:       background-color var(--transition),
                      border-color var(--transition),
                      box-shadow var(--transition);
}

.site-header.scrolled {
    box-shadow: 0 2px 24px rgba(0, 0, 0, 0.06);
}

[data-theme="dark"] .site-header.scrolled {
    box-shadow: 0 2px 24px rgba(0, 0, 0, 0.3);
}

.nav-inner {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    padding:         1.25rem var(--px);
    max-width:       var(--max-w);
    margin:          0 auto;
}

/* === NAV LOGO === */
.nav-logo {
    display:     flex;
    align-items: center;
    gap:         0.6rem;
    flex-shrink: 0;
    z-index:     101;
}

.nav-logo-img {
    width:   28px;
    height:  28px;
    display: block;
}

.nav-logo-text {
    font-family:    'Sora', sans-serif;
    font-size:      1.2rem;
    font-weight:    700;
    letter-spacing: 0.04em;
    color:          var(--text);
    transition:     color var(--transition);
}

/* === DESKTOP NAV LINKS === */
.nav-links {
    display:     none;
    gap:         2.5rem;
    list-style:  none;
}

.nav-links a {
    font-size:      0.85rem;
    font-family:    'Sora', sans-serif;
    font-weight:    400;
    letter-spacing: 0.04em;
    color:          var(--text-sub);
    transition:     color var(--transition);
    position:       relative;
    padding-bottom: 4px;
}

.nav-links a::after {
    content:          '';
    position:         absolute;
    bottom:           0;
    left:             0;
    width:            0;
    height:           1px;
    background-color: var(--text);
    transition:       width 0.3s ease;
}

.nav-links a:hover,
.nav-links a.active {
    color: var(--text);
}

.nav-links a.active::after,
.nav-links a:hover::after {
    width: 100%;
}

/* === NAV RIGHT — TOGGLE + HAMBURGER === */
.nav-right {
    display:     flex;
    align-items: center;
    gap:         0.75rem;
    z-index:     101;
}

/* === THEME TOGGLE === */
.theme-toggle {
    display:         flex;
    align-items:     center;
    justify-content: center;
    width:           36px;
    height:          36px;
    padding:         0;
    border:          1px solid var(--border);
    border-radius:   var(--radius);
    color:           var(--text-muted);
    background:      none;
    cursor:          pointer;
    flex-shrink:     0;
    z-index:         101;
    transition:      color var(--transition), border-color var(--transition);
}

.theme-toggle:hover {
    color:        var(--text);
    border-color: var(--text);
}

.theme-toggle svg {
    display:     block;
    flex-shrink: 0;
}

/* === HAMBURGER === */
.hamburger {
    display:         none;
    flex-direction:  column;
    justify-content: center;
    gap:             5px;
    width:           32px;
    height:          32px;
    background:      none;
    border:          none;
    cursor:          pointer;
    padding:         0;
    z-index:         201;
    flex-shrink:     0;
}

.hamburger span {
    display:          block;
    width:            100%;
    height:           2px;
    background-color: var(--text);
    border-radius:    2px;
    transition:       background-color var(--transition);
}

.hamburger span:last-child {
    width: 65%;
}

/* === DRAWER OVERLAY === */
.drawer-overlay {
    position:         fixed;
    inset:            0;
    background-color: rgba(0, 0, 0, 0.45);
    z-index:          149;
    opacity:          0;
    visibility:       hidden;
    transition:       opacity 0.4s ease, visibility 0.4s ease;
}

.drawer-overlay.open {
    opacity:    1;
    visibility: visible;
}

/* === MOBILE DRAWER === */
.nav-drawer {
    position:         fixed;
    top:              0;
    left:             0;
    bottom:           0;
    width:            75%;
    max-width:        320px;
    background-color: var(--bg);
    z-index:          150;
    transform:        translateX(-100%);
    transition:       transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                      background-color var(--transition);
    border-right:     1px solid var(--border);
    padding:          5rem 2.5rem 3rem;
    display:          flex;
    flex-direction:   column;
    justify-content:  center;
}

.nav-drawer.open {
    transform: translateX(0);
}

.drawer-links {
    list-style:     none;
    display:        flex;
    flex-direction: column;
    gap:            0.5rem;
}

.drawer-links a {
    display:       block;
    font-family:   'Sora', sans-serif;
    font-size:     1.35rem;
    font-weight:   600;
    color:         var(--text-sub);
    padding:       0.75rem 0;
    border-bottom: 1px solid var(--border);
    transition:    color var(--transition), border-color var(--transition);
}

.drawer-links a:hover,
.drawer-links a.active {
    color: var(--text);
}

.drawer-links li:last-child a {
    border-bottom: none;
}

/* === RESPONSIVE NAV === */
@media (max-width: 767px) {
    .nav-links  { display: none !important; }
    .hamburger  { display: flex; }
}

@media (min-width: 768px) {
    .nav-links       { display: flex; }
    .hamburger       { display: none; }
    .nav-drawer,
    .drawer-overlay  { display: none !important; }
}

/* === MAIN OFFSET === */
main {
    padding-top: 68px;
    animation:   pageReveal 0.55s ease forwards;
}

@keyframes pageReveal {
    from { opacity: 0; transform: translateY(18px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* === HERO === */
.hero {
    min-height:  calc(100vh - 68px);
    display:     flex;
    align-items: center;
}

.hero-inner {
    width:     100%;
    max-width: var(--max-w);
    margin:    0 auto;
    padding:   5rem var(--px);
}

.hero-label {
    font-size:      0.7rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  1.75rem;
    transition:     color var(--transition);
}

.hero-title {
    margin-bottom: 2rem;
    max-width:     14ch;
}

.hero-bio {
    max-width:     52ch;
    font-size:     0.975rem;
    margin-bottom: 3rem;
    color:         var(--text-sub);
}

.hero-cta {
    display:          inline-block;
    padding:          0.9rem 2.25rem;
    background-color: var(--text);
    color:            var(--bg);
    font-size:        0.75rem;
    letter-spacing:   0.18em;
    text-transform:   uppercase;
    font-weight:      500;
    border:           1px solid var(--text);
    transition:       background-color var(--transition),
                      color var(--transition),
                      border-color var(--transition);
}

.hero-cta:hover {
    background-color: transparent;
    color:            var(--text);
}

.hero-stats {
    display:     flex;
    flex-wrap:   wrap;
    gap:         2.5rem;
    margin-top:  4rem;
    padding-top: 2.5rem;
    border-top:  1px solid var(--border);
    transition:  border-color var(--transition);
}

.stat-num {
    display:       block;
    font-family:   'Sora', sans-serif;
    font-size:     2.2rem;
    font-weight:   700;
    color:         var(--text);
    line-height:   1;
    margin-bottom: 0.3rem;
    transition:    color var(--transition);
}

.stat-label {
    font-size:      0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          var(--text-muted);
    transition:     color var(--transition);
}

/* === HERO REVEAL ANIMATION === */
.hero-reveal {
    opacity:    0;
    transform:  translateY(28px);
    transition: opacity 0.85s ease, transform 0.85s ease;
}

.hero-reveal.revealed {
    opacity:   1;
    transform: translateY(0);
}

/* === SCROLL FADE UP === */
.fade-up {
    opacity:    0;
    transform:  translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}

.fade-up.visible {
    opacity:   1;
    transform: translateY(0);
}

/* === SECTION LABELS === */
.section-label {
    font-size:      0.7rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  0.75rem;
    transition:     color var(--transition);
}

.section-title {
    margin-bottom: 3.5rem;
}

/* === HOMEPAGE FEATURED === */
.home-projects-section {
    position: relative;
    z-index:  1;
}

.home-projects-header {
    display:         flex;
    align-items:     flex-end;
    justify-content: space-between;
    margin-bottom:   3rem;
    gap:             1.5rem;
    flex-wrap:       wrap;
}

.home-projects-header .section-title {
    margin-bottom: 0;
}

.link-text {
    font-size:      0.78rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color:          var(--text-muted);
    border-bottom:  1px solid var(--border);
    padding-bottom: 2px;
    white-space:    nowrap;
    transition:     color var(--transition), border-color var(--transition);
}

.link-text:hover {
    color:        var(--text);
    border-color: var(--text);
}

/* === PROJECT CARDS === */
.projects-grid {
    display:               grid;
    grid-template-columns: 1fr;
    gap:                   1.5px;
    background-color:      var(--border);
    border:                1px solid var(--border);
    transition:            background-color var(--transition),
                           border-color var(--transition);
}

.project-card {
    background-color: var(--bg);
    padding:          2.25rem;
    transition:       background-color var(--transition);
}

.project-card:hover {
    background-color: var(--bg-card);
}

/* === DEVICE MOCKUPS === */
.mockup-scene {
    position:         relative;
    width:            100%;
    margin-bottom:    1.75rem;
    padding:          1.5rem 1.5rem 0;
    background-color: var(--bg-card);
    border:           1px solid var(--border);
    border-bottom:    none;
    overflow:         hidden;
    min-height:       180px;
    display:          flex;
    align-items:      flex-end;
    justify-content:  center;
    gap:              1rem;
    transition:       background-color var(--transition),
                      border-color var(--transition);
}

.mockup-laptop {
    width:       75%;
    flex-shrink: 0;
    position:    relative;
    overflow:    hidden;
}

.mockup-laptop-screen {
    width:            100%;
    aspect-ratio:     16 / 10;
    background-color: var(--bg);
    border:           2px solid var(--border);
    border-bottom:    none;
    border-radius:    6px 6px 0 0;
    overflow:         hidden;
    position:         relative;
    transition:       background-color var(--transition),
                      border-color var(--transition);
}

.mockup-laptop-screen img {
    position:        absolute;
    top:             0;
    left:            0;
    width:           100%;
    height:          100%;
    object-fit:      contain;
    display:         block;
    max-width:       none;
}

.mockup-laptop-screen.mockup-empty {
    display:         flex;
    align-items:     center;
    justify-content: center;
}

.mockup-laptop-screen.mockup-empty span {
    font-size:      0.55rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color:          var(--text-muted);
    transition:     color var(--transition);
}

.mockup-laptop-bottom {
    width:            100%;
    height:           12px;
    background-color: var(--border);
    border-radius:    0 0 4px 4px;
    display:          flex;
    justify-content:  center;
    transition:       background-color var(--transition);
}

.mockup-laptop-stand {
    width:            30%;
    height:           8px;
    background-color: var(--border);
    border-radius:    0 0 4px 4px;
    transition:       background-color var(--transition);
}

.mockup-phone {
    width:         18%;
    flex-shrink:   0;
    align-self:    flex-end;
    margin-bottom: 12px;
}

.mockup-phone-frame {
    width:            100%;
    background-color: #1A1A1A;
    border-radius:    12px;
    padding:          6px 4px;
    display:          flex;
    flex-direction:   column;
    align-items:      center;
    gap:              4px;
}

.mockup-phone-camera {
    width:            5px;
    height:           5px;
    background-color: #333333;
    border-radius:    50%;
}

.mockup-phone-screen {
    width:            100%;
    aspect-ratio:     9 / 16;
    background-color: var(--bg);
    border-radius:    6px;
    overflow:         hidden;
    position:         relative;
    transition:       background-color var(--transition);
}

.mockup-phone-screen img {
    position:        absolute;
    top:             0;
    left:            0;
    width:           100%;
    height:          100%;
    object-fit:      cover;
    object-position: top center;
    display:         block;
    max-width:       none;
}

.mockup-phone-screen.mockup-empty {
    display:         flex;
    align-items:     center;
    justify-content: center;
}

.mockup-phone-screen.mockup-empty span {
    font-size:      0.45rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color:          var(--text-muted);
    text-align:     center;
    padding:        0 4px;
}

.mockup-phone-home {
    width:         10px;
    height:        10px;
    border:        1px solid #444444;
    border-radius: 50%;
}

/* === PROJECT INFO & ACTIONS === */
.project-info {
    padding-top: 1.75rem;
}

.project-meta {
    display:       flex;
    gap:           1.25rem;
    margin-bottom: 0.85rem;
}

.project-tag {
    font-size:      0.65rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color:          var(--text-muted);
    transition:     color var(--transition);
}

.project-title {
    margin-bottom: 0.75rem;
}

.project-desc {
    font-size:     0.875rem;
    color:         var(--text-sub);
    margin-bottom: 1.5rem;
    transition:    color var(--transition);
}

.project-tools {
    display:       flex;
    flex-wrap:     wrap;
    gap:           0.5rem;
    margin-bottom: 1.5rem;
}

.tool-tag {
    font-size:      0.65rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    padding:        0.3rem 0.75rem;
    border:         1px solid var(--border);
    color:          var(--text-sub);
    transition:     border-color var(--transition),
                    color var(--transition);
}

.project-card:hover .tool-tag {
    border-color: var(--text-sub);
}

.project-actions {
    display:   flex;
    gap:       1rem;
    flex-wrap: wrap;
}

.btn-detail {
    display:          inline-block;
    padding:          0.65rem 1.5rem;
    background-color: var(--text);
    color:            var(--bg);
    font-family:      'Sora', sans-serif;
    font-size:        0.65rem;
    font-weight:      500;
    letter-spacing:   0.16em;
    text-transform:   uppercase;
    border:           1px solid var(--text);
    border-radius:    var(--radius);
    transition:       background-color var(--transition),
                      color var(--transition),
                      border-color var(--transition);
}

.btn-detail:hover {
    background-color: transparent;
    color:            var(--text);
}

.btn-live {
    display:          inline-block;
    padding:          0.65rem 1.5rem;
    background-color: transparent;
    color:            var(--text);
    font-family:      'Sora', sans-serif;
    font-size:        0.65rem;
    font-weight:      500;
    letter-spacing:   0.16em;
    text-transform:   uppercase;
    border:           1px solid var(--border);
    border-radius:    var(--radius);
    transition:       border-color var(--transition),
                      color var(--transition);
}

.btn-live:hover {
    border-color: var(--text);
    color:        var(--text);
}

/* === GET IN TOUCH SECTION === */
.cta-section {
    border-top: 1px solid var(--border);
}

.cta-inner {
    max-width:  55ch;
    margin:     0 auto;
    text-align: center;
}

.cta-heading {
    margin-bottom: 1.25rem;
}

.cta-desc {
    font-size:     0.975rem;
    margin-bottom: 2.5rem;
    color:         var(--text-sub);
}

/* === PROJECTS PAGE === */
.projects-page-intro {
    padding:   4rem 0 3rem;
    max-width: 60ch;
}

.projects-page-intro p {
    font-size: 1rem;
}

/* === ABOUT PAGE === */
.about-grid {
    display:               grid;
    grid-template-columns: 1fr;
    gap:                   4rem;
    align-items:           start;
}

.about-photo {
    width:            100%;
    aspect-ratio:     3 / 4;
    background-color: var(--bg-card);
    border:           1px solid var(--border);
    display:          flex;
    align-items:      center;
    justify-content:  center;
    transition:       background-color var(--transition),
                      border-color var(--transition);
    max-width:        420px;
}

.about-photo span {
    font-size:      0.65rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color:          var(--text-muted);
}

.about-photo img {
    width:      100%;
    height:     100%;
    object-fit: cover;
}

.about-role {
    font-size:      0.7rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  2.25rem;
    transition:     color var(--transition);
}

.about-bio {
    margin-bottom: 3rem;
}

.about-bio p {
    font-size: 0.95rem;
}

.about-bio p + p {
    margin-top: 1.1rem;
}

.skills-label {
    font-size:      0.7rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  1.25rem;
    transition:     color var(--transition);
}

.skills-grid {
    display:               grid;
    grid-template-columns: repeat(2, 1fr);
    gap:                   0.65rem;
}

.skill-item {
    padding:    0.9rem 1.1rem;
    border:     1px solid var(--border);
    font-size:  0.78rem;
    color:      var(--text-sub);
    transition: border-color var(--transition),
                color var(--transition),
                background-color var(--transition);
}

.skill-item:hover {
    border-color:     var(--text);
    color:            var(--text);
    background-color: var(--bg-card);
}

/* === CONTACT PAGE === */
.contact-intro {
    max-width:     55ch;
    margin-bottom: 4rem;
}

.contact-intro p {
    font-size: 0.975rem;
}

.contact-grid {
    display:               grid;
    grid-template-columns: 1fr;
    gap:                   4.5rem;
    align-items:           start;
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-group label {
    display:        block;
    font-size:      0.68rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  0.55rem;
    transition:     color var(--transition);
}

.form-group input,
.form-group select,
.form-group textarea {
    width:            100%;
    background-color: var(--bg-card);
    border:           1px solid var(--border);
    color:            var(--text);
    font-family:      'Sora', sans-serif;
    font-size:        0.9rem;
    padding:          0.9rem 1rem;
    outline:          none;
    border-radius:    var(--radius);
    transition:       border-color var(--transition),
                      background-color var(--transition),
                      color var(--transition);
    -webkit-appearance: none;
    appearance:       none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--text);
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: var(--text-muted);
}

.form-group textarea {
    resize:     vertical;
    min-height: 150px;
}

.form-group select option {
    background-color: var(--bg);
    color:            var(--text);
}

.btn-submit {
    width:            100%;
    padding:          1rem;
    background-color: var(--text);
    color:            var(--bg);
    font-family:      'Sora', sans-serif;
    font-size:        0.75rem;
    letter-spacing:   0.2em;
    text-transform:   uppercase;
    font-weight:      500;
    border:           1px solid var(--text);
    border-radius:    var(--radius);
    cursor:           pointer;
    transition:       background-color var(--transition),
                      color var(--transition),
                      border-color var(--transition);
}

.btn-submit:hover {
    background-color: transparent;
    color:            var(--text);
}

.alert {
    padding:       1rem 1.25rem;
    margin-bottom: 1.5rem;
    font-size:     0.85rem;
    border:        1px solid;
    border-radius: var(--radius);
}

.alert-success {
    border-color:     #2a7a4a;
    color:            #2a7a4a;
    background-color: rgba(42, 122, 74, 0.06);
}

.alert-error {
    border-color:     #aa3333;
    color:            #aa3333;
    background-color: rgba(170, 51, 51, 0.06);
}

.contact-info-item {
    padding:       1.5rem 0;
    border-bottom: 1px solid var(--border);
    transition:    border-color var(--transition);
}

.contact-info-item:first-child {
    padding-top: 0;
}

.contact-info-label {
    font-size:      0.65rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  0.45rem;
    transition:     color var(--transition);
}

.contact-info-value {
    font-size:  0.9rem;
    color:      var(--text-sub);
    display:    block;
    transition: color var(--transition);
}

.contact-info-value:hover {
    color: var(--text);
}

.contact-social {
    display:        flex;
    flex-direction: column;
    gap:            0.35rem;
}

/* === FOOTER === */
.site-footer {
    border-top:  1px solid var(--border);
    padding:     4rem var(--px) 2.5rem;
    margin-top:  4rem;
    transition:  border-color var(--transition);
}

.footer-inner {
    max-width:             var(--max-w);
    margin:                0 auto;
    display:               grid;
    grid-template-columns: 1fr;
    gap:                   2.5rem;
    margin-bottom:         3rem;
}

.footer-label {
    font-size:      0.65rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  1.25rem;
    transition:     color var(--transition);
}

.footer-col nav,
.footer-social,
.footer-contact {
    display:        flex;
    flex-direction: column;
    gap:            0.65rem;
}

.footer-col nav a,
.footer-social a,
.footer-contact a {
    font-size:  0.875rem;
    color:      var(--text-sub);
    transition: color var(--transition);
}

.footer-col nav a:hover,
.footer-social a:hover,
.footer-contact a:hover {
    color: var(--text);
}

.footer-bottom {
    max-width:   var(--max-w);
    margin:      0 auto;
    padding-top: 2rem;
    border-top:  1px solid var(--border);
    text-align:  center;
    transition:  border-color var(--transition);
}

.footer-bottom p {
    font-size: 0.75rem;
    color:     var(--text-muted);
}

/* === PROJECT DETAIL PAGE === */
.detail-back {
    display:        inline-block;
    font-size:      0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  2.5rem;
    border-bottom:  1px solid transparent;
    padding-bottom: 2px;
    font-family:    'Sora', sans-serif;
    transition:     color var(--transition), border-color var(--transition);
}

.detail-back:hover {
    color:        var(--text);
    border-color: var(--border);
}

.detail-header {
    margin-bottom: 2.5rem;
}

.detail-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
}

.detail-meta {
    display:               grid;
    grid-template-columns: repeat(2, 1fr);
    gap:                   1.5rem;
    padding:               2rem 0;
    border-top:            1px solid var(--border);
    border-bottom:         1px solid var(--border);
    margin-bottom:         3rem;
    transition:            border-color var(--transition);
}

.detail-meta-label {
    font-size:      0.62rem;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color:          var(--text-muted);
    margin-bottom:  0.4rem;
    font-family:    'Sora', sans-serif;
    transition:     color var(--transition);
}

.detail-meta-value {
    font-size:   0.9rem;
    color:       var(--text-sub);
    font-family: 'Sora', sans-serif;
    transition:  color var(--transition);
}

.detail-hero {
    width:         100%;
    border:        1px solid var(--border);
    overflow:      hidden;
    margin-bottom: 4rem;
    transition:    border-color var(--transition);
}

.detail-hero img {
    width:      100%;
    height:     auto;
    display:    block;
    object-fit: cover;
}

.detail-body {
    display:               grid;
    grid-template-columns: 1fr;
    gap:                   4rem;
    align-items:           start;
}

.detail-section {
    margin-bottom: 3.5rem;
}

.detail-section:last-child {
    margin-bottom: 0;
}

.detail-section-title {
    font-size:     clamp(1.4rem, 3vw, 2rem);
    margin-bottom: 1.5rem;
}

.detail-section p {
    font-size: 0.95rem;
}

.detail-section p + p {
    margin-top: 1rem;
}

.detail-features {
    display:        flex;
    flex-direction: column;
    gap:            0.75rem;
}

.detail-features li {
    padding:       0.85rem 1.1rem;
    border:        1px solid var(--border);
    font-size:     0.875rem;
    color:         var(--text-sub);
    font-family:   'Sora', sans-serif;
    line-height:   1.5;
    transition:    border-color var(--transition),
                   color var(--transition),
                   background-color var(--transition);
}

.detail-features li:hover {
    border-color:     var(--text);
    color:            var(--text);
    background-color: var(--bg-card);
}

.detail-gallery {
    display:               grid;
    grid-template-columns: 1fr;
    gap:                   1rem;
}

.detail-gallery-item {
    border:     1px solid var(--border);
    overflow:   hidden;
    transition: border-color var(--transition);
}

.detail-gallery-item img {
    width:      100%;
    height:     auto;
    display:    block;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.detail-gallery-item:hover img {
    transform: scale(1.03);
}

.detail-sidebar {
    display:        flex;
    flex-direction: column;
    gap:            1.5rem;
}

.detail-sidebar-box {
    padding:          1.75rem;
    border:           1px solid var(--border);
    background-color: var(--bg-card);
    transition:       border-color var(--transition),
                      background-color var(--transition);
}

.detail-nav {
    display:          flex;
    justify-content:  space-between;
    align-items:      stretch;
    gap:              1px;
    margin-top:       5rem;
    padding-top:      3rem;
    border-top:       1px solid var(--border);
    background-color: var(--border);
    transition:       border-color var(--transition),
                      background-color var(--transition);
}

.detail-nav-link {
    flex:             1;
    padding:          1.75rem;
    background-color: var(--bg);
    display:          flex;
    flex-direction:   column;
    gap:              0.5rem;
    transition:       background-color var(--transition);
}

.detail-nav-link:hover {
    background-color: var(--bg-card);
}

.detail-nav-next {
    text-align: right;
}

.detail-nav-label {
    font-size:      0.62rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color:          var(--text-muted);
    font-family:    'Sora', sans-serif;
    transition:     color var(--transition);
}

.detail-nav-title {
    font-family: 'Sora', sans-serif;
    font-size:   clamp(1rem, 2vw, 1.35rem);
    font-weight: 600;
    color:       var(--text);
    transition:  color var(--transition);
}

/* === RESPONSIVE === */
@media (min-width: 768px) {
    .projects-grid {
        grid-template-columns: 1fr 1fr;
    }

    .skills-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .footer-inner {
        grid-template-columns: repeat(3, 1fr);
    }

    .footer-center {
        text-align: center;
    }

    .footer-center .footer-social {
        align-items: center;
    }

    .footer-right .footer-contact {
        align-items: flex-end;
    }

    .detail-meta {
        grid-template-columns: repeat(4, 1fr);
    }

    .detail-gallery {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 1024px) {
    .about-grid {
        grid-template-columns: 5fr 7fr;
        gap:                   6rem;
    }

    .contact-grid {
        grid-template-columns: 3fr 2fr;
    }

    .detail-body {
        grid-template-columns: 3fr 1fr;
        gap:                   5rem;
    }
}

/* === FOOTER SOCIAL ICONS === */
.footer-social-link {
    display:     flex;
    align-items: center;
    gap:         8px;
    font-size:   0.875rem;
    color:       var(--text-sub);
    transition:  color var(--transition);
}

.footer-social-link:hover {
    color: var(--text);
}

.footer-social-link svg {
    flex-shrink: 0;
}