/* ===================================
    Syed Bilal — Personal studio
    Mix: Scattered Portfolio + Web Agency + Digital Agency
====================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600;1,700&display=swap');

:root {
    --base-color: #BEFF01;
    --medium-gray: #6F7071;
    --dark-gray: #1C1D1F;
    --nero-gray: #161616;
    --light-gray: #cbcbcb;
    --alt-font: 'Space Grotesk', sans-serif;
    --primary-font: 'Inter', sans-serif;
    --serif-font: 'Playfair Display', serif;
    --paper: #F4F4F0;
    --ink: #1C1D1F;
    --mx: 50%;
    --my: 20%;
}

@media (hover: hover) and (pointer: fine) {
    .custom-cursor .circle-cursor-outer {
        border: 1px solid transparent;
        background: var(--base-color);
    }
    .custom-cursor .circle-cursor-inner {
        background: var(--black);
    }
    .custom-cursor .circle-cursor-inner.cursor-link-hover {
        background-color: var(--black);
        width: 10px;
        height: 10px;
        margin-left: -5px;
        margin-top: -5px;
    }
}

body {
    font-size: 17px;
    line-height: 32px;
}

.serif-font,
.font-serif {
    font-family: var(--serif-font);
}

.top-space-margin {
    margin-top: 120px;
}

header {
    position: relative;
    z-index: 1000;
}

header .navbar {
    z-index: 1000;
}

.home-hero.full-screen {
    box-sizing: border-box;
    padding-top: 130px;
}

.home-hero .fs-220 {
    font-size: 10.5rem;
    line-height: 9rem;
}

header .container-fluid {
    padding-left: 65px;
    padding-right: 65px;
}

header .navbar-brand {
    padding: 28px 0;
}

.brand-mark {
    font-family: var(--alt-font);
    font-weight: 700;
    font-size: 26px;
    letter-spacing: -0.8px;
    color: var(--dark-gray);
    line-height: 1;
}

.brand-mark .brand-dot {
    color: var(--base-color);
}

.brand-mark i {
    font-style: normal;
    color: #8a8a8a;
    font-weight: 500;
}

.navbar .navbar-nav .nav-link {
    font-weight: 600;
    font-size: 17px;
    padding: 10px 18px;
}

header .header-button .btn.btn-switch-text > span {
    padding: 11px 26px;
}

.btn {
    font-family: var(--primary-font);
    font-weight: 700;
}

.btn.btn-base-color {
    color: var(--dark-gray);
}

.banner-title {
    font-size: 520px;
    word-break: normal;
    letter-spacing: -32px;
    pointer-events: none;
}

.ls-minus-20px {
    letter-spacing: -20px;
}

.word-break-normal {
    word-break: normal;
}

.bg-nero-gray {
    background-color: var(--nero-gray);
}

.bg-sherpa-blue {
    background-color: #333436;
}

.bg-sliding-line {
    background-image: linear-gradient(135deg, transparent 45%, #c8e85a 45%, #c8e85a 55%, transparent 0);
    background-size: 5px 5px;
}

.bg-sliding-line-dark-gray {
    background-image: linear-gradient(135deg, transparent 45%, #464646 45%, #464646 55%, transparent 0);
    background-size: 5px 5px;
}

.highlight-separator[data-shadow-animation] span {
    height: 18px;
    z-index: -1;
    bottom: 4px;
}

.highlight-separator[data-shadow-animation] span img {
    height: 18px;
    width: 100%;
}

.highlight-separator-small .highlight-separator[data-shadow-animation] span {
    height: 14px;
    bottom: 2px;
}

.page-title-extra-large h1 {
    font-size: 5rem;
    line-height: 5rem;
}

.fs-220 {
    font-size: 12.5rem;
    line-height: 10.8rem;
}

.fs-280 {
    font-size: 16rem;
    line-height: 16rem;
}

.portfolio-simple .grid-item .portfolio-image img {
    filter: grayscale(100%);
}

.portfolio-simple .portfolio-box:hover .portfolio-image img {
    opacity: 1;
    filter: grayscale(0%);
}

.portfolio-simple .grid-item .portfolio-image.logo-card {
    background: #fff;
    min-height: 280px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 36px 28px;
}

.portfolio-simple .grid-item .portfolio-image.logo-card a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 208px;
}

.portfolio-simple .grid-item .portfolio-image.logo-card img {
    width: auto;
    height: auto;
    max-width: 90%;
    max-height: 200px;
    object-fit: contain;
}

.portfolio-simple .grid-item .portfolio-image.logo-card-dark {
    background: #0b0b0b;
}

.timeline-thumb.logo-thumb,
.service-photo.logo-photo {
    object-fit: contain;
    object-position: center;
    background: #fff;
    padding: 10px;
}

.sticky-wrap .elements-social ul {
    font-weight: 600;
}

footer .footer-navbar .nav-link {
    color: var(--dark-gray);
}

.nav-item .nav-link.active {
    color: var(--dark-gray);
}

.skill-chip {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    border: 1px solid #e4e4e4;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--dark-gray);
    margin: 0 8px 10px 0;
    background: #fff;
}

.timeline-year {
    font-family: var(--alt-font);
    font-weight: 700;
    color: var(--dark-gray);
}

.img-cover,
.gallery-mosaic img,
.image-strip img,
.service-photo,
.process-photo,
.timeline-thumb {
    object-fit: cover;
    object-position: center;
}

.image-strip img {
    width: 100%;
    height: 320px;
}

.overlap-photo {
    position: relative;
}

.overlap-photo .photo-back {
    width: 78%;
    height: 460px;
}

.overlap-photo .photo-front {
    position: absolute;
    width: 58%;
    height: 300px;
    right: 0;
    bottom: -48px;
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.18);
}

.overlap-photo .photo-mid {
    position: absolute;
    width: 42%;
    left: 8%;
    top: -36px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.14);
}

.gallery-mosaic img {
    width: 100%;
    height: 240px;
}

.gallery-mosaic .tall img {
    height: 500px;
}

.service-photo {
    width: 100%;
    height: 230px;
}

.process-photo {
    width: 100%;
    height: 190px;
}

.timeline-thumb {
    width: 84px;
    height: 84px;
    border-radius: 8px;
    flex-shrink: 0;
}

.city-card img {
    width: 100%;
    height: 280px;
}

.hero-float-photo {
    position: absolute;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.16);
    z-index: 2;
}

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

.photo-overlay-card {
    position: relative;
    overflow: hidden;
}

.photo-overlay-card .photo-scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.05) 20%, rgba(0,0,0,0.55) 100%);
}

@media (max-height: 860px) and (min-width: 992px) {
    .home-hero.full-screen {
        height: auto;
        min-height: 100vh;
        padding-top: 120px;
        padding-bottom: 50px;
    }
    .home-hero .fs-220 {
        font-size: 7.4rem;
        line-height: 6.6rem;
    }
}

@media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1320px;
    }
}

@media (min-width: 768px) {
    h1 {
        font-size: 4.6rem;
        line-height: 4.6rem;
    }
    h2 {
        font-size: 3.4rem;
        line-height: 3.4rem;
    }
}

@media (max-width: 1399px) {
    .banner-title {
        font-size: 420px;
        letter-spacing: -24px;
    }
}

@media (max-width: 1199px) {
    .banner-title {
        font-size: 320px;
        letter-spacing: -18px;
    }
    .ls-minus-20px {
        letter-spacing: -12px;
    }
    header .container-fluid {
        padding-left: 30px;
        padding-right: 30px;
    }
    .fs-220,
    .home-hero .fs-220 {
        font-size: 8.2rem;
        line-height: 7.2rem;
    }
    .home-hero.full-screen {
        padding-top: 120px;
    }
}

@media (max-width: 991px) {
    .banner-title {
        font-size: 220px;
        letter-spacing: -10px;
    }
    .top-space-margin {
        margin-top: 100px;
    }
    .home-hero.full-screen {
        padding-top: 90px;
        height: auto;
        min-height: 100vh;
        padding-bottom: 40px;
    }
    .navbar.bg-transparent {
        background-color: transparent !important;
    }
    [data-mobile-nav-style=full-screen-menu] .navbar-full-screen-menu-inner .navbar-nav .nav-item .nav-link {
        font-size: 38px;
        line-height: 44px;
    }
}

@media (max-width: 767px) {
    .banner-title {
        font-size: 140px;
        letter-spacing: -6px;
    }
    .ls-minus-20px {
        letter-spacing: -4px;
    }
    .fs-220,
    .home-hero .fs-220 {
        font-size: 4.6rem;
        line-height: 4.4rem;
    }
    .home-hero.full-screen {
        padding-top: 80px;
    }
    .overlap-photo .photo-back,
    .overlap-photo .photo-front {
        width: 100%;
        height: 260px;
        position: relative;
        right: auto;
        bottom: auto;
        margin-bottom: 15px;
    }
    .image-strip img,
    .city-card img {
        height: 210px;
    }
    .gallery-mosaic .tall img,
    .gallery-mosaic img {
        height: 220px;
    }
}

@media (max-width: 575px) {
    header .navbar-brand {
        padding: 16px 0;
    }
    .fs-280 {
        font-size: 6.5rem;
        line-height: 6.5rem;
    }
}

.header-whatsapp {
    white-space: nowrap;
    letter-spacing: -0.2px;
}

.whatsapp-float {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 9999;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #25D366;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    box-shadow: 0 16px 40px rgba(37, 211, 102, 0.35);
}

.whatsapp-float:hover {
    color: #fff;
    transform: translateY(-2px);
}

html[data-theme="light"] body,
html:not([data-theme="dark"]) body {
    background-image: url('../../images/vertical-line-bg-small-medium-gray.svg');
}

.theme-atmosphere {
    display: none;
}

.header-whatsapp {
    color: var(--dark-gray);
}

.theme-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    width: 68px;
    height: 34px;
    margin-right: 16px;
    padding: 3px 7px;
    border: 1px solid rgba(28, 29, 31, 0.12);
    border-radius: 999px;
    background: rgba(28, 29, 31, 0.05);
    cursor: pointer;
    vertical-align: middle;
}

.theme-toggle-thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--base-color);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    transition: transform 0.25s ease;
    pointer-events: none;
}

html[data-theme="dark"] .theme-toggle-thumb {
    transform: translateX(34px);
}

.theme-toggle-icon {
    position: relative;
    z-index: 1;
    display: inline-flex;
    width: 16px;
    height: 16px;
    color: var(--dark-gray);
    opacity: 0.45;
    transition: color 0.2s ease, opacity 0.2s ease;
}

.theme-toggle-icon svg {
    width: 16px;
    height: 16px;
}

.theme-toggle-icon.is-sun svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.theme-toggle-icon.is-moon svg {
    fill: currentColor;
}

html[data-theme="light"] .theme-toggle-icon.is-sun,
html:not([data-theme="dark"]) .theme-toggle-icon.is-sun,
html[data-theme="dark"] .theme-toggle-icon.is-moon {
    color: #111;
    opacity: 1;
}

.theme-toggle:focus-visible {
    outline: 2px solid var(--base-color);
    outline-offset: 2px;
}

@media (max-width: 1199px) {
    .theme-toggle {
        margin-right: 0;
    }
}

/* ===================================
    Dark theme
====================================== */
html[data-theme="dark"] {
    color-scheme: dark;
}

html[data-theme="dark"] body {
    background-color: #070708;
    background-image: url('../../images/vertical-line-bg-dark.svg');
    color: #9A9A96;
}

html[data-theme="dark"] ::selection {
    background: var(--base-color);
    color: #111;
}

html[data-theme="dark"] .theme-atmosphere {
    display: block;
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

html[data-theme="dark"] .orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.38;
}

html[data-theme="dark"] .orb-lime {
    width: 42vw;
    height: 42vw;
    max-width: 560px;
    max-height: 560px;
    right: -8vw;
    top: -12vw;
    background: radial-gradient(circle, rgba(190, 255, 1, 0.45), transparent 68%);
}

html[data-theme="dark"] .orb-amber {
    width: 30vw;
    height: 30vw;
    max-width: 380px;
    max-height: 380px;
    left: -6vw;
    top: 28vh;
    background: radial-gradient(circle, rgba(255, 176, 64, 0.22), transparent 70%);
}

html[data-theme="dark"] .orb-mist {
    width: 50vw;
    height: 36vw;
    max-width: 720px;
    max-height: 480px;
    right: 10vw;
    bottom: -12vw;
    background: radial-gradient(circle, rgba(120, 140, 180, 0.16), transparent 72%);
}

html[data-theme="dark"] .pointer-glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(520px circle at var(--mx) var(--my), rgba(190, 255, 1, 0.07), transparent 46%);
}

html[data-theme="dark"] .film-grain {
    position: absolute;
    inset: 0;
    opacity: 0.045;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

html[data-theme="dark"] section,
html[data-theme="dark"] footer {
    position: relative;
    z-index: 1;
}

html[data-theme="dark"] .text-dark-gray:not(.btn):not(.bg-base-color) {
    color: var(--paper) !important;
}

html[data-theme="dark"] .btn.text-dark-gray,
html[data-theme="dark"] .bg-base-color,
html[data-theme="dark"] .bg-base-color .text-dark-gray,
html[data-theme="dark"] .bg-base-color i,
html[data-theme="dark"] .bg-base-color span {
    color: #111 !important;
}

html[data-theme="dark"] .brand-mark {
    color: var(--paper);
}

html[data-theme="dark"] .header-whatsapp,
html[data-theme="dark"] .navbar .navbar-nav .nav-link,
html[data-theme="dark"] footer .footer-navbar .nav-link {
    color: rgba(244, 244, 240, 0.78);
}

html[data-theme="dark"] .navbar .navbar-nav .nav-link:hover,
html[data-theme="dark"] .navbar .navbar-nav .nav-link.active,
html[data-theme="dark"] footer .footer-navbar .nav-link:hover,
html[data-theme="dark"] .header-whatsapp:hover {
    color: var(--paper);
}

html[data-theme="dark"] .navbar-toggler-line {
    background: var(--paper);
}

html[data-theme="dark"] .theme-toggle {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.12);
}

html[data-theme="dark"] .theme-toggle-icon {
    color: var(--paper);
}

html[data-theme="dark"] .bg-very-light-gray {
    background-color: #101012 !important;
}

html[data-theme="dark"] .bg-white:not(.logo-card) {
    background-color: #121214 !important;
}

html[data-theme="dark"] .bg-medium-gray {
    background-color: #161618 !important;
}

html[data-theme="dark"] .border-color-extra-medium-gray,
html[data-theme="dark"] .border-color-dark-gray {
    border-color: rgba(255, 255, 255, 0.1) !important;
}

html[data-theme="dark"] .separator-line-1px.bg-dark-gray,
html[data-theme="dark"] .progress-step-separator.bg-dark-gray {
    background-color: rgba(244, 244, 240, 0.22) !important;
}

html[data-theme="dark"] .skill-chip {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.1);
    color: var(--paper);
}

html[data-theme="dark"] .skill-chip:hover {
    border-color: var(--base-color);
    color: var(--base-color);
}

html[data-theme="dark"] .timeline-year {
    color: var(--paper);
}

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea,
html[data-theme="dark"] .form-control {
    color: var(--paper);
    border-color: rgba(255, 255, 255, 0.16);
    background-color: transparent;
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus,
html[data-theme="dark"] .form-control:focus,
html[data-theme="dark"] .contact-form-style-03 input:focus,
html[data-theme="dark"] .contact-form-style-03 textarea:focus {
    color: var(--paper);
    border-color: var(--base-color) !important;
    border-bottom-color: var(--base-color) !important;
}

html[data-theme="dark"] ::placeholder,
html[data-theme="dark"] ::-webkit-input-placeholder {
    color: #6E6E6A !important;
}

html[data-theme="dark"] .text-outline-color-extra-medium-gray {
    -webkit-text-stroke-color: rgba(255, 255, 255, 0.18);
}

html[data-theme="dark"] .text-base-color {
    text-shadow: 0 0 42px rgba(190, 255, 1, 0.18);
}

html[data-theme="dark"] .bg-sliding-line-dark-gray {
    box-shadow: 0 0 0 1px rgba(190, 255, 1, 0.18), 0 20px 50px rgba(0, 0, 0, 0.35);
}

html[data-theme="dark"] .portfolio-simple .grid-item .portfolio-image.logo-card,
html[data-theme="dark"] .timeline-thumb.logo-thumb,
html[data-theme="dark"] .service-photo.logo-photo {
    background: #f6f6f2;
}

html[data-theme="dark"] .overlap-photo .photo-front,
html[data-theme="dark"] .overlap-photo .photo-mid,
html[data-theme="dark"] .hero-float-photo {
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] .image-strip img,
html[data-theme="dark"] .process-photo,
html[data-theme="dark"] .gallery-mosaic img,
html[data-theme="dark"] .city-card img,
html[data-theme="dark"] .service-photo {
    filter: saturate(0.88) brightness(0.9);
}

html[data-theme="dark"] .image-strip img:hover,
html[data-theme="dark"] .portfolio-simple .portfolio-box:hover .portfolio-image img {
    filter: saturate(1) brightness(1);
}

html[data-theme="dark"] .sticky-wrap .elements-social ul,
html[data-theme="dark"] .sticky-wrap a,
html[data-theme="dark"] .sticky-wrap div,
html[data-theme="dark"] .sticky-wrap span {
    color: var(--paper);
}

html[data-theme="dark"] .custom-cursor .circle-cursor-inner {
    background: #fff;
}

html[data-theme="dark"] .custom-cursor .circle-cursor-inner.cursor-link-hover {
    background-color: #fff;
}

html[data-theme="dark"] ::-webkit-scrollbar {
    width: 10px;
}

html[data-theme="dark"] ::-webkit-scrollbar-track {
    background: #070708;
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: #2a2a2c;
    border-radius: 999px;
}

html[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: #BEFF01;
}

@media (max-width: 991px) {
    html[data-theme="dark"] [data-mobile-nav-style=full-screen-menu] .navbar-full-screen-menu-inner .navbar-nav .nav-item .nav-link {
        color: var(--paper);
    }
}

.skip-link {
    position: absolute;
    left: 16px;
    top: -80px;
    z-index: 10000;
    padding: 10px 16px;
    background: var(--base-color);
    color: #111;
    font-weight: 700;
    border-radius: 6px;
}

.skip-link:focus {
    top: 16px;
}

.site-breadcrumbs {
    padding: 18px 0 0;
}

.site-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.site-breadcrumbs li + li::before {
    content: "/";
    margin-right: 8px;
    opacity: 0.45;
}

.site-breadcrumbs a {
    color: inherit;
}

.entity-card,
.page-answer,
.faq-section {
    padding-top: 80px;
    padding-bottom: 80px;
}

.entity-facts .col {
    padding-top: 8px;
}

.faq-item h3 {
    line-height: 1.35;
}

.footer-seo-meta address a {
    color: inherit;
}

html[data-theme="dark"] .site-breadcrumbs,
html[data-theme="dark"] .entity-card,
html[data-theme="dark"] .page-answer,
html[data-theme="dark"] .faq-section h2,
html[data-theme="dark"] .faq-item h3,
html[data-theme="dark"] .footer-seo-meta {
    color: var(--paper);
}
