/*==================================================
  DAVE PORTFOLIO V3
  PART 1 / 6
  RESET + VARIABLES + GLOBAL
==================================================*/

:root{

    --bg:#0a0a0a;
    --surface:#111111;

    --white:#ffffff;
    --text:#bdbdbd;
    --text-secondary:#9a9a9a;

    --gold:#c7a86b;
    --gold-light:#e1c38c;

    --border:rgba(255,255,255,.08);

    --radius:22px;

    --transition:.35s cubic-bezier(0.33,1,0.68,1);

    --container:1320px;
    --section-gap:52px;

}

/*==============================
RESET
==============================*/

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{

    scroll-behavior:smooth;
    scroll-padding-top:90px;

}

body{

    background:var(--bg);

    color:var(--white);

    font-family:"Inter",sans-serif;

    overflow-x:hidden;

    -webkit-font-smoothing:antialiased;

}

/*==============================
SELECTION
==============================*/

::selection{

    background:var(--gold);

    color:#000;

}

/*==============================
SCROLLBAR
==============================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#090909;

}

::-webkit-scrollbar-thumb{

    background:#444;

    border-radius:100px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--gold);

}

/*==============================
GLOBAL
==============================*/

img{

    display:block;

    max-width:100%;

}

a{

    text-decoration:none;

    color:inherit;

}

button{

    font:inherit;

    cursor:pointer;

    border:none;

    background:none;

}

.container{

    width:min(92%,var(--container));

    margin:auto;

}

section{

    position:relative;

    padding:140px 0;

}

h1,
h2,
h3{

    line-height:1.05;

    letter-spacing:-0.04em;

}

h1{

    font-size:clamp(72px,9vw,120px);

    font-weight:900;

}

h2{

    font-size:clamp(48px,6vw,82px);

    font-weight:700;

}

h3{

    font-size:30px;

    font-weight:700;

}

p{

    color:var(--text);

    line-height:1.8;

    font-size:18px;

}

/*==============================
NOISE
==============================*/

.noise{

    position:fixed;

    inset:0;

    pointer-events:none;

    opacity:.025;

    z-index:9999;

    background-image:
    radial-gradient(circle at 20% 20%,white 1px,transparent 1px),
    radial-gradient(circle at 80% 70%,white 1px,transparent 1px);

    background-size:180px 180px;

}

/*==============================
SCROLL PROGRESS
==============================*/

.scroll-progress{

    position:fixed;

    top:0;

    left:0;

    height:3px;

    width:0;

    background:var(--gold);

    z-index:99999;

}

/*==============================
SECTION HEADER
==============================*/

.section-header{

    max-width:900px;

    margin-bottom:80px;

}

.section-header span{

    display:inline-block;

    color:var(--gold);

    font-size:.85rem;

    font-weight:700;

    letter-spacing:.22em;

    text-transform:uppercase;

    margin-bottom:24px;

}

.section-header p{

    max-width:760px;

    margin-top:28px;

}

/*==============================
BUTTONS
==============================*/

.btn-primary,
.btn-secondary{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    height:58px;

    padding:0 34px;

    border-radius:999px;

    font-weight:600;
    font-size:16px;
    line-height:1;

    transition:
        transform var(--transition),
        background .35s ease,
        border-color .35s ease,
        color .35s ease,
        box-shadow .35s ease;

}

.btn-primary{

    background:var(--gold);

    color:#000;

}

.btn-primary:hover{

    background:var(--gold-light);

    transform:translateY(-3px);

    box-shadow:0 8px 24px rgba(199,168,107,.22);

}

.btn-primary:focus-visible{

    outline:2px solid var(--gold-light);
    outline-offset:4px;

}

.btn-secondary{

    border:1px solid rgba(255,255,255,.12);

    color:#fff;

}

.btn-secondary:hover{

    border-color:var(--gold);

    color:var(--gold);

    transform:translateY(-2px);

}

.btn-secondary:focus-visible{

    outline:2px solid var(--gold);
    outline-offset:4px;

}

/*==================================================
  DAVE PORTFOLIO V3
  PART 2 / 6
  HEADER + HERO
==================================================*/


/*==============================
HEADER
==============================*/

.header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    z-index:1000;

    transition:.35s ease;

}

.header.scrolled{

    background:rgba(10,10,10,.85);

    backdrop-filter:blur(18px);

    border-bottom:1px solid rgba(255,255,255,.06);

}


/*==============================
NAVBAR
==============================*/

.navbar{

    height:90px;

    display:flex;

    align-items:center;

    justify-content:space-between;

}

.logo{

    font-size:2rem;

    font-weight:900;

    letter-spacing:-.04em;

    color:#fff;

}

.header .logo{

    margin:0;

    transform:translateY(3px);

}


/*==============================
HEADER BUTTON
==============================*/

.header-button{

    display:flex;

    align-items:center;

    justify-content:center;

    height:52px;

    padding:0 28px;

    border-radius:999px;

    background:transparent;

    border:1px solid rgba(199,168,107,.6);

    font-weight:600;
    font-size:15px;
    line-height:1;

    transition:
        transform var(--transition),
        background .35s ease,
        border-color .35s ease,
        color .35s ease;

}

.header-button:hover{

    border-color:rgba(225,195,140,.85);

    transform:translateY(-2px);

}

.header-button:focus-visible{

    outline:2px solid var(--gold);
    outline-offset:4px;

    border-color:rgba(225,195,140,.85);

}


/*==============================
HERO
==============================*/

.hero{

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    padding-top:90px;

    position:relative;

}


/*==============================
BACKGROUND
==============================*/

.hero-background{

    position:absolute;

    inset:0;

    background:
    radial-gradient(circle at 70% 40%,
    rgba(199,168,107,.10),
    transparent 45%);

    pointer-events:none;

}


/*==============================
LAYOUT
==============================*/

.hero-container{

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:100px;

    position:relative;

    z-index:2;

}


/*==============================
LEFT
==============================*/

.hero-left{

    position:relative;

    z-index:10;

    max-width:760px;

}

.hero-label{

    display:inline-flex;

    align-items:center;

    gap:14px;

    margin-bottom:28px;

    color:var(--gold);

    text-transform:uppercase;

    letter-spacing:.24em;

    font-size:.82rem;

    font-weight:700;

}

.hero-label::before{

    content:"";

    width:38px;

    height:1px;

    background:var(--gold);

}

.hero h1{

    margin-bottom:40px;

    font-family:"League Spartan",sans-serif;

    font-size:clamp(68px,5.8vw,88px);

    font-weight:800;

    line-height:1.1;

    letter-spacing:+0.02em;

    text-transform:uppercase;

}

.hero h1 span{

    display:block;

    margin-top:0;

    color:#fff;

    font-size:.86em;

}

.hero h1 .gold{

    color:var(--gold);

}



.hero p{

    max-width:500px;

    margin-bottom:48px;

}


/*==============================
BUTTONS
==============================*/

.hero-buttons{

    display:flex;

    gap:18px;

}


/*==============================
RIGHT
==============================*/

.hero-right{

    position:relative;

    display:flex;

    justify-content:center;

    overflow:visible;

}

.hero-right::after{

    content:"";

    position:absolute;

    /* Cover the overflowing portrait, not just the column box */
    top:25px;
    left:-360px;
    width:980px;
    height:125%;

    z-index:6;

    pointer-events:none;

    background:
        radial-gradient(
            ellipse 110% 95% at 100% 100%,
            rgba(10,10,10,.70) 0%,
            rgba(10,10,10,.42) 26%,
            rgba(199,168,107,.05) 48%,
            rgba(10,10,10,.08) 64%,
            transparent 84%
        ),
        linear-gradient(
            325deg,
            rgba(10,10,10,.46) 0%,
            rgba(10,10,10,.18) 38%,
            transparent 72%
        );

}

.hero-image{

    position:relative;

    width:980px;

    margin-left:-360px;

    margin-top:25px;
    max-width:none;


    z-index:5;

    filter:drop-shadow(0 40px 80px rgba(0,0,0,.55));

    -webkit-mask-image:linear-gradient(
    to right,

    transparent 0%,

    rgba(0,0,0,.10) 6%,

    rgba(0,0,0,.65) 14%,

    #000 24%

    );

    mask-image:linear-gradient(
    to right,

    transparent 0%,

    rgba(0,0,0,.10) 6%,

    rgba(0,0,0,.65) 14%,

    #000 24%

    );

}

/*==================================================
  SELECTED WEBSITE PROJECTS
==================================================*/

.web-projects{

    padding:132px 0 148px;

    background:
        radial-gradient(circle at 88% 16%,rgba(199,168,107,.07),transparent 30%),
        var(--bg);

    border-top:1px solid rgba(255,255,255,.05);

}

.web-projects-header{

    margin-bottom:104px;

}

.web-projects-header h2{

    max-width:940px;

}

.web-projects-list{

    display:flex;
    flex-direction:column;
    gap:140px;

}

.web-project{

    --preview-ambient:rgba(199,168,107,.025);
    --preview-curation:linear-gradient(transparent,transparent);
    --preview-image-scale:1;
    --preview-image-origin:center;
    --preview-image-position:center;

    display:grid;
    grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);
    align-items:center;
    gap:clamp(48px,7vw,112px);

}

.web-project--lumora{

    --preview-ambient:rgba(59,118,198,.035);

}

.web-project--ghostly{

    --preview-ambient:rgba(112,82,150,.03);
    --preview-curation:linear-gradient(
        to bottom,
        rgba(8,8,10,.2) 0%,
        rgba(8,8,10,.06) 18%,
        transparent 38%
    );
    --preview-image-scale:1.075;
    --preview-image-origin:50% 58%;
    --preview-image-position:50% 58%;

}

.web-project--vela{

    --preview-ambient:rgba(125,65,54,.03);

}

.web-project:nth-child(even){

    grid-template-columns:minmax(0,1.28fr) minmax(280px,.72fr);

}

.web-project:nth-child(even) .web-project-copy{

    order:2;

}

.web-project:nth-child(even) .web-project-preview{

    order:1;

}

.web-project-copy{

    max-width:470px;

}

.web-project-meta{

    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:18px;

    margin-bottom:25px;

}

.web-project-number{

    color:var(--gold);

    font-family:"League Spartan",sans-serif;
    font-size:clamp(48px,5vw,72px);
    font-weight:800;
    line-height:.8;
    letter-spacing:-.03em;

    opacity:.72;

}

.web-project-category{

    color:var(--gold-light);

    font-size:.76rem;
    font-weight:700;
    line-height:1.5;
    letter-spacing:.17em;

}

.web-project h3{

    margin-bottom:24px;

    font-family:"League Spartan",sans-serif;
    font-size:clamp(36px,4vw,58px);
    font-weight:800;
    line-height:.98;
    letter-spacing:-.02em;

}

.web-project-copy p{

    margin-bottom:34px;

    font-size:clamp(16px,1.25vw,18px);
    line-height:1.75;

}

.web-project-link{

    position:relative;

    display:inline-flex;
    align-items:center;
    gap:10px;

    min-height:48px;
    padding:0 2px 2px;

    color:var(--gold);

    font-size:16px;
    font-weight:700;
    line-height:1;
    letter-spacing:.02em;

    text-shadow:0 0 12px rgba(199,168,107,.16);

    transition:
        color .26s ease,
        text-shadow .26s ease;

}

.web-project-link::after{

    content:"";

    position:absolute;
    right:0;
    bottom:0;
    left:0;

    height:1px;

    background:var(--gold);

    transform:scaleX(.46);
    transform-origin:left center;

    opacity:.72;

    transition:
        transform .26s ease,
        opacity .26s ease,
        box-shadow .26s ease;

}

.web-project-link span{

    transition:transform .26s cubic-bezier(0.33,1,0.68,1);

}

.web-project-link:hover{

    color:var(--gold-light);

    text-shadow:0 0 16px rgba(225,195,140,.28);

}

.web-project-link:hover::after{

    transform:scaleX(1);

    opacity:1;

    box-shadow:0 0 9px rgba(199,168,107,.28);

}

.web-project-link:hover span{

    transform:translateX(4px);

}

.web-project-link:focus-visible{

    outline:2px solid var(--gold-light);
    outline-offset:5px;

    color:var(--gold-light);

}

.web-project-link:focus-visible::after{

    transform:scaleX(1);
    opacity:1;

}

.web-project-preview{

    position:relative;
    display:block;

    width:100%;
    aspect-ratio:16 / 10;

    overflow:hidden;

    border:1px solid rgba(199,168,107,.4);
    border-radius:var(--radius);

    background:#0d0d0d;

    box-shadow:
        0 24px 60px rgba(0,0,0,.25),
        0 0 46px var(--preview-ambient);

    cursor:pointer;

    transition:
        transform .3s cubic-bezier(0.33,1,0.68,1),
        border-color .26s ease,
        box-shadow .3s ease;

}

.web-project-preview:focus-visible{

    outline:2px solid var(--gold-light);
    outline-offset:5px;

    transform:scale(1.012);
    border-color:rgba(225,195,140,.82);

    box-shadow:
        0 28px 70px rgba(0,0,0,.34),
        0 0 28px rgba(199,168,107,.12),
        0 0 52px var(--preview-ambient);

}

.web-project-preview::before{

    content:"";

    position:absolute;
    inset:0;

    background:
        var(--preview-curation),
        linear-gradient(135deg,rgba(199,168,107,.08),transparent 42%),
        radial-gradient(circle at 78% 72%,rgba(199,168,107,.08),transparent 32%);

    z-index:1;

    pointer-events:none;

}

.web-project-preview::after{

    content:"";

    position:absolute;
    top:18px;
    left:20px;

    width:6px;
    height:6px;

    border-radius:50%;

    background:var(--gold);

    box-shadow:
        14px 0 0 rgba(199,168,107,.48),
        28px 0 0 rgba(199,168,107,.22);

    opacity:.78;

    z-index:2;

    pointer-events:none;

}

.web-project-placeholder{

    position:absolute;
    inset:0;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;

    padding:52px 24px 24px;

    text-align:center;

}

.web-project-placeholder span{

    color:rgba(255,255,255,.82);

    font-family:"League Spartan",sans-serif;
    font-size:clamp(24px,3vw,44px);
    font-weight:800;
    line-height:1;
    letter-spacing:.08em;

}

.web-project-placeholder small{

    color:var(--gold);

    font-size:.68rem;
    font-weight:700;
    letter-spacing:.2em;

    opacity:.7;

}

.web-project-preview > img{

    display:block;

    width:100%;
    height:100%;

    object-fit:cover;
    object-position:var(--preview-image-position);

    transform:scale(var(--preview-image-scale));
    transform-origin:var(--preview-image-origin);

}

.web-project-preview-hint{

    position:absolute;
    right:20px;
    bottom:18px;
    z-index:2;

    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:10px 14px;

    border:1px solid rgba(199,168,107,.55);
    border-radius:999px;

    background:rgba(10,10,10,.82);
    backdrop-filter:blur(8px);

    color:var(--gold-light);

    font-size:13px;
    font-weight:700;
    line-height:1;

    opacity:0;
    transform:translateY(6px);

    pointer-events:none;

    transition:
        opacity .26s ease,
        transform .26s ease,
        border-color .26s ease,
        box-shadow .26s ease;

}

.web-project-preview-hint > span{

    transition:transform .26s cubic-bezier(0.33,1,0.68,1);

}

.web-project-preview:focus-visible .web-project-preview-hint{

    opacity:1;
    transform:translateY(0);

    border-color:rgba(225,195,140,.78);
    box-shadow:0 0 16px rgba(199,168,107,.12);

}

.web-project-preview:focus-visible .web-project-preview-hint > span{

    transform:translateX(4px);

}

@media(hover:hover){

    .web-project-preview:hover{

        transform:scale(1.012);
        border-color:rgba(225,195,140,.82);

        box-shadow:
            0 28px 70px rgba(0,0,0,.34),
            0 0 28px rgba(199,168,107,.12),
            0 0 52px var(--preview-ambient);

    }

    .web-project-preview:hover .web-project-preview-hint{

        opacity:1;
        transform:translateY(0);

        border-color:rgba(225,195,140,.78);
        box-shadow:0 0 16px rgba(199,168,107,.12);

    }

    .web-project-preview:hover .web-project-preview-hint > span{

        transform:translateX(4px);

    }

}

@media(max-width:1100px){

    .web-project{

        grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);
        gap:48px;

    }

    .web-project:nth-child(even){

        grid-template-columns:minmax(0,1.22fr) minmax(260px,.78fr);

    }

}

@media(max-width:900px){

    .web-projects{

        padding:110px 0 120px;

    }

    .web-projects-header{

        margin-bottom:72px;

    }

    .web-projects-list{

        gap:104px;

    }

    .web-project,
    .web-project:nth-child(even){

        grid-template-columns:1fr;
        gap:44px;

    }

    .web-project:nth-child(even) .web-project-copy,
    .web-project:nth-child(even) .web-project-preview{

        order:initial;

    }

    .web-project-copy{

        max-width:640px;

    }

}

@media(max-width:768px){

    .web-projects{

        padding:72px 0 84px;

    }

    .web-projects-header{

        margin-bottom:64px;
        text-align:left;

    }

    .web-projects-header h2{

        font-size:clamp(32px,8.5vw,44px);

    }

    .web-projects-list{

        gap:88px;

    }

    .web-project,
    .web-project:nth-child(even){

        gap:34px;

    }

    .web-project-meta{

        gap:14px;
        margin-bottom:20px;

    }

    .web-project-number{

        font-size:52px;

    }

    .web-project-category{

        font-size:.69rem;
        letter-spacing:.13em;

    }

    .web-project h3{

        margin-bottom:18px;

        font-size:clamp(32px,9vw,44px);

    }

    .web-project-copy p{

        margin-bottom:24px;

        font-size:16px;

    }

    .web-project-link{

        min-height:50px;
        font-size:16px;

    }

    .web-project-preview{

        border-radius:18px;
        box-shadow:0 16px 40px rgba(0,0,0,.28);

    }

    .web-project-placeholder{

        padding:42px 18px 18px;

    }

    .web-project-placeholder span{

        font-size:clamp(20px,7vw,32px);

    }

    .web-project-preview::after{

        top:14px;
        left:16px;

    }

}

/*==================================================
  DAVE PORTFOLIO V3
  PART 5 / 6
  CONTACT + FOOTER
==================================================*/

/*==============================
CONTACT
==============================*/

.contact{

    background:var(--surface);

    padding:100px 0 120px;

}

.contact-header{

    text-align:center;
    max-width:720px;
    margin:0 auto var(--section-gap);

}

.contact-header h2{

    margin:0 0 10px;
    font-size:clamp(1.95rem,4.4vw,3rem);
    line-height:1.12;
    letter-spacing:-0.03em;

}

.contact-header p{

    margin:0;
    color:var(--text);
    line-height:1.65;
    font-size:clamp(15px,0.95vw,17px);

}

.contact-actions{

    display:flex;
    flex-direction:column;
    align-items:center;
    gap:36px;

    max-width:960px;
    margin-inline:auto;

}

.contact-messenger{

    display:flex;
    align-items:center;
    gap:20px;

    width:100%;
    max-width:640px;

    padding:28px 32px;

    border-radius:var(--radius);
    border:1.5px solid rgba(199,168,107,.42);

    background:linear-gradient(
        135deg,
        rgba(199,168,107,.08) 0%,
        rgba(17,17,17,.98) 42%,
        #111111 100%
    );

    color:var(--white);
    text-decoration:none;

    transition:
        transform var(--transition),
        border-color .35s ease,
        box-shadow .35s ease;

}

.contact-messenger:hover,
.contact-messenger:focus-visible{

    transform:translateY(-4px);

    border-color:var(--gold-light);

    box-shadow:
        0 0 28px rgba(199,168,107,.22),
        0 14px 36px rgba(0,0,0,.38);

}

.contact-messenger:focus-visible{

    outline:2px solid var(--gold);
    outline-offset:4px;

}

.contact-messenger-icon{

    flex-shrink:0;

    width:32px;
    height:32px;

    color:var(--gold-light);

}

.contact-messenger-text{

    display:flex;
    flex-direction:column;
    gap:4px;

    min-width:0;

}

.contact-messenger-label{

    font-size:clamp(1.1rem,1.6vw,1.35rem);
    font-weight:600;
    letter-spacing:.01em;

}

.contact-messenger-sub{

    color:var(--text);
    font-size:clamp(13px,0.9vw,15px);
    line-height:1.4;

}

.social-icons{

    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:20px;

    width:100%;

}

.social-icon-btn{

    display:flex;
    align-items:center;
    justify-content:center;

    width:56px;
    height:56px;
    flex-shrink:0;

    border-radius:14px;
    border:1.5px solid rgba(199,168,107,.32);

    background:#111111;

    color:var(--gold-light);
    text-decoration:none;

    transition:
        transform var(--transition),
        border-color .35s ease,
        box-shadow .35s ease,
        background .35s ease;

}

.social-icon-btn svg{

    flex-shrink:0;
    width:24px;
    height:24px;

}

.social-icon-btn:hover,
.social-icon-btn:focus-visible{

    transform:translateY(-4px);

    border-color:var(--gold-light);

    box-shadow:
        0 0 24px rgba(199,168,107,.18),
        0 12px 32px rgba(0,0,0,.35);

}

.social-icon-btn:focus-visible{

    outline:2px solid var(--gold);
    outline-offset:4px;

}

@media(max-width:900px){

    .contact-messenger{

        padding:24px 22px;
        gap:16px;

    }

}

@media(max-width:820px){

    .contact{

        padding:72px 0 96px;

    }

    .contact-header{

        margin-bottom:40px;

    }

}


/*==================================================
FOOTER
==================================================*/

.footer{

    background:#090909;

    border-top:1px solid rgba(255,255,255,.06);

}

.footer-container{

    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;

    padding:64px 0 52px;
    gap:28px;

}

.footer-logo{

    margin:0;

}

.footer-description{

    max-width:520px;

    color:var(--text-secondary);
    font-size:clamp(15px,0.95vw,17px);
    line-height:1.7;

}

.footer-divider{

    width:100%;
    max-width:640px;
    height:1px;

    background:rgba(255,255,255,.06);

}

.footer-copyright{

    color:var(--text-secondary);
    font-size:.9rem;
    line-height:1.5;

}

/*==================================================
  DAVE PORTFOLIO V3
  PART 6 / 6
  RESPONSIVE
==================================================*/

/*==============================
LARGE TABLETS
==============================*/

@media(max-width:1100px){

    .hero-container{

        grid-template-columns:1fr;

        gap:110px;

    }

    .hero{

        min-height:auto;

        padding:180px 0 120px;

    }

    .hero-left{

        max-width:100%;

    }

    .hero-right{

        justify-content:center;

    }

}


/*==============================
TABLETS
==============================*/

@media(max-width:900px){

    section{

        padding:110px 0;

    }

    h1{

        font-size:clamp(56px,10vw,90px);

    }

    h2{

        font-size:clamp(42px,7vw,60px);

    }

}


/*==============================
MOBILE
==============================*/

@media(max-width:768px){

    .hero-container{

        text-align:center;

    }

    .hero-label{

        justify-content:center;

    }

    .hero p{

        margin-left:auto;
        margin-right:auto;

    }

    .hero-buttons{

        justify-content:center;

        flex-wrap:wrap;

    }

}


/*==============================
SMALL MOBILE
==============================*/

@media(max-width:540px){

    section{

        padding:90px 0;

    }

    .container{

        width:94%;

    }

    h1{

        font-size:52px;

    }

    h2{

        font-size:40px;

    }

    p{

        font-size:16px;

    }

    .btn-primary,
    .btn-secondary{

        width:100%;

    }

    .hero-buttons{

        flex-direction:column;

    }

}

/*==============================
REDUCED MOTION
==============================*/

@media(prefers-reduced-motion:reduce){

    *{

        animation:none!important;

        transition:none!important;

        scroll-behavior:auto!important;

    }

}

.logo img{
    display:block;
    height:74px;
    width:auto;
}

/* ========================= */
/* PORTFOLIO */
/* ========================= */

.portfolio{
    box-sizing:border-box;

    display:flex;
    flex-direction:column;
    justify-content:flex-start;

    padding:16px 0 10px;
}

.portfolio > .container{

    display:flex;
    flex-direction:column;
    min-height:0;

}

.portfolio .section-header{
    text-align:center;
    max-width:720px;
    margin:0 auto var(--section-gap);

    flex-shrink:0;
}

.portfolio .section-header span{
    display:none;
}

.portfolio .section-header h2{
    margin:0 0 10px;
    font-size:clamp(1.95rem,4.4vw,3rem);
    line-height:1.12;
    letter-spacing:-0.03em;
}

.portfolio .section-header p{
    color:var(--text-secondary);
    line-height:1.65;
    font-size:clamp(15px,0.95vw,17px);

    margin:0;
}

.portfolio-swiper-wrapper{

    position:relative;

    display:flex;
    align-items:center;

    flex-shrink:0;

    gap:30px;

}

.portfolio-swiper-viewport{

    position:relative;

    width:100%;
    max-width:var(--container);
    margin-inline:auto;

    min-width:0;

    overflow:hidden;

}

.portfolio-swiper-viewport::before,
.portfolio-swiper-viewport::after{

    content:"";

    position:absolute;
    top:0;
    bottom:0;

    width:clamp(44px,8.5%,108px);

    z-index:3;

    pointer-events:none;

}

.portfolio-swiper-viewport::before{

    left:0;

    background:linear-gradient(
        to right,
        var(--bg) 0%,
        var(--bg) 8%,
        color-mix(in srgb,var(--bg) 88%,transparent) 20%,
        color-mix(in srgb,var(--bg) 55%,transparent) 38%,
        color-mix(in srgb,var(--bg) 22%,transparent) 52%,
        transparent 65%
    );

}

.portfolio-swiper-viewport::after{

    right:0;

    background:linear-gradient(
        to left,
        var(--bg) 0%,
        var(--bg) 8%,
        color-mix(in srgb,var(--bg) 88%,transparent) 20%,
        color-mix(in srgb,var(--bg) 55%,transparent) 38%,
        color-mix(in srgb,var(--bg) 22%,transparent) 52%,
        transparent 65%
    );

}

.portfolio-swiper{

    width:100%;
    overflow:visible;

    cursor:grab;

    user-select:none;
    -webkit-user-select:none;

    touch-action:pan-y pinch-zoom;

    --portfolio-card-size:min(100%,min(50.5svh,505px));

    --swiper-wrapper-transition-timing-function:cubic-bezier(0.33,1,0.68,1);
    --swiper-pagination-bullet-horizontal-gap:6px;

}

.portfolio-swiper.swiper-dragging{

    cursor:grabbing;

}

.portfolio-swiper .swiper-wrapper{

    align-items:center;

    backface-visibility:hidden;

}

.portfolio-swiper.swiper-dragging .swiper-wrapper,
.portfolio-swiper.swiper-animating .swiper-wrapper{

    will-change:transform;

}

.swiper{

    padding-bottom:60px;

}

.swiper.portfolio-swiper{

    display:flex;
    flex-direction:column;
    align-items:center;

    height:auto;

    padding-bottom:0;

}

.portfolio-swiper .swiper-slide{

    --slide-progress:1;

    display:flex;
    justify-content:center;
    align-items:center;

    height:auto;

    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;

    transform-origin:center center;
    transform:scale(calc(1 - var(--slide-progress) * 0.12)) translateZ(0);

    padding:0 10px;

    opacity:calc(1 - var(--slide-progress) * 0.42);

    transition:
        opacity .65s cubic-bezier(0.33,1,0.68,1),
        transform .65s cubic-bezier(0.33,1,0.68,1);

}

.portfolio-swiper.swiper-dragging .swiper-slide{

    transition-duration:.15s;

}

.portfolio-swiper .swiper-slide-active{

    --slide-progress:0;

}

.portfolio-swiper .portfolio-card{

    overflow:visible;

    display:flex;
    flex-direction:column;
    align-items:center;

    width:var(--portfolio-card-size);

}

.portfolio-swiper .portfolio-card-info{

    display:none;

}

.portfolio-swiper .portfolio-card-info h3{

    font-size:clamp(28.75px,4.5vw,34.5px);

    margin:0 0 6px;

}

.portfolio-swiper .portfolio-card-info span{

    font-size:clamp(16.1px,2.8vw,18.4px);

}

.portfolio-swiper .portfolio-image{

    position:relative;

    aspect-ratio:1 / 1;

    width:var(--portfolio-card-size);

    margin-inline:0;

    border-radius:var(--radius);

    border:1.5px solid rgba(199,168,107,.32);

    overflow:hidden;

    transition:border-color .5s ease;

}

.portfolio-swiper .portfolio-image img{

    display:block;

    width:100%;
    height:100%;

    object-fit:cover;

    border:none;
    border-radius:0;

    -webkit-user-drag:none;
    user-select:none;

}

.portfolio-swiper .swiper-slide-active .portfolio-image{

    border-color:var(--gold-light);

    cursor:zoom-in;

}

@media(min-width:769px){

    .portfolio-swiper{

        --portfolio-card-size:min(100%,min(52.4svh,543px));

    }

}

@media(min-width:1600px) and (min-height:900px){

    .portfolio-swiper{

        --portfolio-card-size:576px;

    }

    .portfolio-swiper .swiper-slide-prev{

        transform:scale(0.88) translateX(-75px);

    }

    .portfolio-swiper .swiper-slide-next{

        transform:scale(0.88) translateX(75px);

    }

}

.portfolio-swiper .swiper-slide-active .portfolio-image:focus-visible{

    outline:2px solid var(--gold);
    outline-offset:4px;

}

.portfolio-swiper.swiper-dragging .swiper-slide-active .portfolio-image{

    cursor:grabbing;

}

.portfolio-swiper .swiper-slide-active .portfolio-image::before{

    content:"Kliknij, aby powiększyć";

    position:absolute;
    left:50%;
    bottom:16px;
    z-index:2;

    transform:translateX(-50%);

    padding:6px 10px;

    border-radius:8px;

    background:rgba(0,0,0,.58);
    color:var(--gold-light);

    font-size:clamp(11px,1.05vw,13px);
    font-weight:500;
    letter-spacing:.02em;
    line-height:1.3;

    pointer-events:none;

    animation:portfolio-zoom-hint-pulse 2.25s ease-in-out infinite;

}

body.portfolio-lightbox-open .portfolio-swiper .swiper-slide-active .portfolio-image::before{

    content:none;

}

@keyframes portfolio-zoom-hint-pulse{

    0%,100%{
        opacity:.55;
    }

    50%{
        opacity:1;
    }

}

.portfolio-image::after{

    content:"";

    position:absolute;

    inset:0;

    border-radius:var(--radius);

    background:linear-gradient(
        to top,
        rgba(0,0,0,.2),
        rgba(0,0,0,0)
    );

    opacity:0;

    pointer-events:none;

    transition:opacity .45s ease;

}

.swiper-slide:not(.swiper-slide-active) .portfolio-image::after{

    opacity:.35;

}

.swiper-horizontal.swiper.portfolio-swiper > .swiper-pagination.swiper-pagination-bullets,
.swiper.portfolio-swiper > .swiper-pagination{

    position:relative !important;

    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;

    display:flex;
    justify-content:center;
    align-items:center;
    flex-shrink:0;

    width:var(--portfolio-card-size);
    max-width:100%;

    margin:24px auto 14px !important;

    transform:none !important;

    z-index:4;

}

.portfolio-swiper .swiper-pagination-bullet{

    background:rgba(145,108,50,.75);

    opacity:.8;

}

.portfolio-swiper .swiper-pagination-bullet-active{

    background:var(--gold);

    opacity:1;

}

.portfolio-swiper .swiper-pagination-bullet:focus-visible{

    outline:2px solid var(--gold);
    outline-offset:3px;

}

@media(max-width:900px){

    .portfolio-swiper-viewport::before,
    .portfolio-swiper-viewport::after{

        width:clamp(28px,5.5vw,56px);

    }

    .portfolio-swiper-wrapper{

        gap:18px;

    }

}

@media(max-height:820px) and (min-width:769px){

    .portfolio{

        padding:14px 0 8px;

    }

    .portfolio .section-header{

        margin-bottom:32px;

    }

    .portfolio .section-header h2{

        margin-bottom:4px;

    }

    .portfolio-swiper-viewport{

        padding-bottom:0;

    }

    .portfolio-swiper{

        --portfolio-card-size:min(100%,min(48.7svh,468px));

    }

}

@media(max-height:768px) and (min-width:769px){

    .portfolio{

        padding:12px 0 6px;

    }

    .portfolio .section-header{

        margin-bottom:28px;

    }

    .swiper.portfolio-swiper > .swiper-pagination{

        margin:20px 0 14px !important;

    }

    .portfolio-swiper{

        --portfolio-card-size:min(100%,min(44.9svh,430px));

    }

}

@media(prefers-reduced-motion:reduce){

    .portfolio-swiper .swiper-slide{

        transition:none;

        transform:none;

        opacity:1;

    }

    .portfolio-swiper .swiper-slide:not(.swiper-slide-active){

        opacity:.65;

    }

    .portfolio-swiper.swiper-dragging .swiper-wrapper,
    .portfolio-swiper.swiper-animating .swiper-wrapper{

        will-change:auto;

    }

}

/* PORTFOLIO LIGHTBOX */

body.portfolio-lightbox-open{

    overflow:hidden;

}

.portfolio-lightbox{

    position:fixed;
    inset:0;
    z-index:1001;

    display:flex;
    align-items:center;
    justify-content:center;

    opacity:0;
    visibility:hidden;

    transition:
        opacity .2s ease,
        visibility .2s ease;

}

.portfolio-lightbox.is-open{

    opacity:1;
    visibility:visible;

}

.portfolio-lightbox-backdrop{

    position:absolute;
    inset:0;

    background:var(--bg);

    cursor:pointer;

}

.portfolio-lightbox-content{

    position:relative;
    z-index:1;

    max-width:90vw;
    max-height:88svh;

    transform:scale(.97);

    transition:transform .2s ease;

}

.portfolio-lightbox.is-open .portfolio-lightbox-content{

    transform:scale(1);

}

.portfolio-lightbox-image{

    display:block;

    max-width:90vw;
    max-height:88svh;
    width:auto;
    height:auto;

    object-fit:contain;

    border:1.5px solid rgba(199,168,107,.32);
    border-radius:var(--radius);

    box-shadow:
        0 0 22px rgba(199,168,107,.14),
        0 0 6px rgba(225,195,140,.1);

    cursor:zoom-out;

}

.portfolio-lightbox-close{

    position:absolute;
    top:clamp(14px,3vw,22px);
    right:clamp(14px,3vw,22px);
    z-index:2;

    display:flex;
    align-items:center;
    justify-content:center;

    width:36px;
    height:36px;

    border:1px solid rgba(199,168,107,.32);
    border-radius:50%;

    background:rgba(10,10,10,.82);
    color:var(--gold-light);

    font-size:1.4rem;
    line-height:1;

    cursor:pointer;

    transition:
        border-color .2s ease,
        color .2s ease,
        background .2s ease;

}

.portfolio-lightbox-close:hover{

    border-color:var(--gold-light);
    color:var(--white);

}

.portfolio-lightbox-close:focus-visible{

    outline:2px solid var(--gold);
    outline-offset:3px;

}

@media(prefers-reduced-motion:reduce){

    .portfolio-lightbox,
    .portfolio-lightbox-content{

        transition:none;

    }

    .portfolio-lightbox-content{

        transform:none;

    }

    .portfolio-swiper .swiper-slide-active .portfolio-image::before{

        animation:none;
        opacity:.85;

    }

}

/*==================================================
  MOBILE PREMIUM LAYOUT
  Dedicated mobile experience — max-width: 768px
  Desktop styles above remain untouched.
==================================================*/

@media(max-width:768px){

    /* ── Global & Typography ── */

    html{

        scroll-padding-top:72px;
        -webkit-text-size-adjust:100%;

    }

    body{

        -webkit-overflow-scrolling:touch;
        -webkit-tap-highlight-color:transparent;

    }

    section{

        padding:72px 0;

    }

    .container{

        width:92%;

    }

    h1{

        font-size:clamp(48px,12vw,64px);
        letter-spacing:-0.03em;

    }

    h2{

        font-size:clamp(32px,8.5vw,44px);
        letter-spacing:-0.03em;
        line-height:1.08;

    }

    h3{

        font-size:22px;

    }

    p{

        font-size:17px;
        line-height:1.72;

    }

    .section-header{

        margin-bottom:44px;
        text-align:center;

    }

    .section-header span{

        font-size:.8rem;
        margin-bottom:16px;
        letter-spacing:.2em;

    }

    .section-header p{

        margin-top:16px;
        font-size:16px;
        line-height:1.7;

    }

    /* ── Header ── */

    .navbar{

        height:72px;

    }

    .logo{

        margin:0;

    }

    .logo img{

        height:52px;

    }

    .header-button{

        display:none;

    }

    .header.scrolled{

        backdrop-filter:blur(14px);

    }

    /* ── Hero ── */

    .hero{

        min-height:auto;
        padding:64px 0 16px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
        overflow:visible;

    }

    .hero-background{

        background:
        radial-gradient(
            circle at 50% 80%,
            rgba(199,168,107,.17),
            transparent 44%
        );

    }

    .hero-container{

        display:flex;
        flex-direction:column;
        align-items:center;
        gap:12px;

        width:100%;
        text-align:center;

    }

    .hero-left{

        display:contents;

    }

    /* Mobile order: label → title → portrait → description → buttons */
    .hero-label{

        order:1;
        justify-content:center;
        font-size:.74rem;
        letter-spacing:.2em;
        margin:0;
        gap:10px;

    }

    .hero-label::before{

        width:28px;

    }

    .hero h1{

        order:2;

        display:flex;
        flex-direction:column;
        align-items:center;

        width:100%;
        max-width:100%;

        margin:0;
        padding:0;

        font-size:clamp(42px,11.5vw,56px);
        line-height:1.04;
        letter-spacing:0.01em;

        text-align:center;

    }

    .hero h1 span{

        display:block;

        width:max-content;
        max-width:100%;

        margin-inline:auto;

        text-align:center;

        font-size:1em;

    }

    .hero-right{

        order:3;
        width:100%;
        display:flex;
        justify-content:center;
        align-items:center;
        margin:0;
        padding:0;
        overflow:visible;

    }

    .hero-right::after{

        top:0;
        left:50%;
        right:auto;
        width:95%;
        height:100%;
        transform:translateX(-50%);
        border-radius:var(--radius);

    }

    .hero-image{

        position:relative;
        display:block;
        width:95%;
        max-width:95%;
        height:auto;
        margin:0 auto;

        border-radius:var(--radius);

        -webkit-mask-image:none;
        mask-image:none;

        filter:drop-shadow(0 24px 48px rgba(0,0,0,.55));

        object-fit:contain;

    }

    .hero p{

        order:4;

        box-sizing:border-box;

        width:88%;
        max-width:88%;

        margin-inline:auto;
        padding-inline:0;

        text-align:center;

        font-size:16px;
        line-height:1.72;

    }

    .hero-buttons{

        display:contents;

    }

    .hero-buttons .btn-primary{

        order:5;

    }

    .hero-buttons .btn-secondary{

        order:6;

    }

    .btn-primary,
    .btn-secondary{

        width:100%;
        height:54px;
        padding:0 24px;
        font-size:16px;
        border-radius:999px;

    }

    .hero-buttons .btn-primary,
    .hero-buttons .btn-secondary{

        width:90%;
        max-width:90%;
        margin-inline:auto;

    }

    .btn-primary:focus-visible,
    .btn-secondary:focus-visible{

        outline:2px solid var(--gold);
        outline-offset:3px;

    }

    /* ── Portfolio Swiper ── */

    .portfolio{

        padding:64px 0 48px;

    }

    .portfolio .section-header{

        margin-bottom:32px;

    }

    .portfolio .section-header h2{

        font-size:clamp(28px,7.5vw,36px);
        margin-bottom:10px;

    }

    .portfolio .section-header p{

        font-size:16px;

    }

    .portfolio-swiper-wrapper{

        gap:0;

    }

    .portfolio-swiper-viewport{

        overflow:visible;
        padding:0;
        width:100%;

    }

    .portfolio-swiper-viewport::before,
    .portfolio-swiper-viewport::after{

        display:none;

    }

    .portfolio-swiper{

        --portfolio-card-size:95vw;

        overflow:hidden;
        touch-action:pan-y pinch-zoom;

    }

    .portfolio-swiper .swiper-slide{

        --slide-progress:0;

        transform:none !important;
        opacity:1;

        padding:0;

        transition:none;

    }

    .portfolio-swiper .portfolio-card{

        width:100%;
        max-width:var(--portfolio-card-size);
        margin-inline:auto;

    }

    .portfolio-swiper .portfolio-image{

        width:100%;
        aspect-ratio:1 / 1;
        border-radius:var(--radius);

        box-shadow:
            0 0 0 1px rgba(199,168,107,.18),
            0 16px 40px rgba(0,0,0,.32);

    }

    .portfolio-swiper .portfolio-image img{

        object-fit:cover;

    }

    .portfolio-swiper .swiper-slide-active .portfolio-image{

        border-color:var(--gold-light);

    }

    .portfolio-swiper .swiper-slide-active .portfolio-image::before{

        content:"Dotknij, aby powiększyć";
        bottom:14px;
        font-size:12px;
        padding:8px 14px;
        border-radius:999px;

        animation:none;
        opacity:.9;

    }

    .swiper.portfolio-swiper > .swiper-pagination{

        width:100%;
        max-width:95vw;
        margin:28px auto 0 !important;
        gap:10px;

    }

    .portfolio-swiper .swiper-pagination-bullet{

        width:7px;
        height:7px;
        opacity:.55;

        transition:
            transform .28s cubic-bezier(0.33,1,0.68,1),
            opacity .28s ease,
            background .28s ease;

    }

    .portfolio-swiper .swiper-pagination-bullet-active{

        transform:scale(1.35);
        opacity:1;

    }

    .portfolio-lightbox-close{

        width:48px;
        height:48px;
        top:16px;
        right:16px;

    }

    .portfolio-lightbox-image{

        max-width:94vw;
        max-height:82svh;
        border-radius:var(--radius);

    }

    /* ── Contact ── */

    .contact{

        padding:64px 0 72px;

    }

    .contact-header{

        margin-bottom:32px;

    }

    .contact-header h2{

        font-size:clamp(28px,7.5vw,36px);
        margin-bottom:10px;

    }

    .contact-header p{

        font-size:16px;
        line-height:1.72;

    }

    .contact-actions{

        gap:24px;
        width:100%;

    }

    .contact-messenger{

        max-width:100%;
        width:100%;
        min-height:64px;

        padding:22px 24px;
        gap:18px;
        border-radius:var(--radius);

        border-color:var(--gold);
        background:linear-gradient(
            135deg,
            rgba(199,168,107,.18) 0%,
            rgba(199,168,107,.08) 38%,
            #111111 100%
        );

        box-shadow:
            0 0 32px rgba(199,168,107,.16),
            0 8px 28px rgba(0,0,0,.32);

    }

    .contact-messenger-icon{

        width:32px;
        height:32px;

    }

    .contact-messenger-label{

        font-size:18px;
        font-weight:700;

    }

    .contact-messenger-sub{

        font-size:14px;

    }

    .social-icons{

        gap:16px;

    }

    .social-icon-btn{

        width:52px;
        height:52px;
        border-radius:14px;

    }

    .social-icon-btn svg{

        width:22px;
        height:22px;

    }

    /* ── Footer ── */

    .footer-container{

        padding:56px 0 48px;
        gap:24px;

    }

    .footer-description{

        font-size:15px;
        line-height:1.7;
        max-width:300px;

    }

    .footer-copyright{

        font-size:.875rem;
        line-height:1.5;

    }

    /* ── Touch & Performance ── */

    .btn-primary:hover,
    .btn-secondary:hover,
    .header-button:hover,
    .contact-messenger:hover,
    .social-icon-btn:hover{

        transform:none;

    }

    .contact-messenger:hover,
    .social-icon-btn:hover{

        box-shadow:none;

    }

    .btn-primary:active{

        transform:scale(.98);
        background:var(--gold-light);

    }

    .btn-secondary:active{

        transform:scale(.98);
        border-color:var(--gold);
        color:var(--gold);

    }

    .contact-messenger:focus-visible,
    .social-icon-btn:focus-visible{

        outline:2px solid var(--gold);
        outline-offset:3px;

    }

    .contact-messenger:active{

        transform:scale(.985);
        border-color:var(--gold-light);

        box-shadow:
            0 0 24px rgba(199,168,107,.22),
            0 4px 16px rgba(0,0,0,.28);

    }

    .social-icon-btn:active{

        transform:scale(.985);
        border-color:var(--gold-light);
        background:rgba(199,168,107,.06);

    }

    ::-webkit-scrollbar{

        width:0;
        background:transparent;

    }

}