
* {
    margin: 0;
    padding: 0;
    /* outline: 2px solid red; */
}

:root {
    --menu-width: clamp(240px, 60%, 360px);/* drawer width & button shift */
    --nav-height: 64px; /* top bar height */
}

body { 
    padding-top: var(--nav-height);
    font-family: 'Nunito', sans-serif;
    display: flex;
    flex-direction: column;
}


h1, h2, h3 {
  font-family: 'Dancing Script', cursive;
}

h2 {
    padding: 20px;
}

html {
    scroll-behavior: smooth;
}

section {
    scroll-margin-top: 80px;
    margin-top: 200px;
}

/* main {
    flex: 1;
} */


/* navbar and hamburger rules starts here */

/* Top navbar container */
.navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--nav-height);
    display: flex;
    align-items: center;
    padding: 0 16px;
    padding-right: 56px;          /* reserve space so logo/text don't sit under the button */
    background: rgba(0,0,0,.6);
    backdrop-filter: blur(6px);
    z-index: 100;                /* below the button (2000) but above the backdrop (1100) */
    box-sizing: border-box;
}

/* Prevent content from sliding under the fixed navbar */


/* Logo sizing */
.logo img {
    height: 70px;
    width: auto;
    display: block;
}

/* Button stays on the top-right and can slide left when open */
.hamburger {
    position: fixed;              /* keep it pinned to the viewport corner */
    top: 8px;
    right: 12px;
    height: 44px;
    /* width: 44px; */
    display: grid;
    place-items: center;
    border: none;
    background: transparent;
    color: #fff;
    cursor: pointer;
    z-index: 2000;                /* higher than drawer/backdrop */
    max-width: 44px;
    overflow: hidden;
}

/* Rotate icon 90° -> 3 vertical lines when open */
.hamburger svg { transition: transform 200ms ease-out; }
.menu-open .hamburger svg { transform: rotate(90deg); }

/* RIGHT-SIDE off-canvas drawer */
.nav-links {
    position: fixed;
    top: 0;
    right: 0;
    height: 100svh;
    width: var(--menu-width);
    max-width: 420px;
    background: #000;
    padding: calc(56px + 12px) 16px 16px; /* leave room for the button on top */
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    transform: translateX(100%);   /* hidden off-screen to RIGHT */
    transition: transform 0.5s ease-out;
    z-index: 1200;                 /* below hamburger, above backdrop */
    overflow-y: auto;
}

/* Drawer links */

.nav-links a {
  display: inline-block;
  padding: 10px 16px;
  border-radius: 10px;
  text-decoration: none;
  width: 55px;
  color: #000;
  font-weight: 600;
  text-align: center;
  background: linear-gradient(135deg, #f7baff, #D0A8F0, #6FD59D);
  background-size: 300% 300%;
  animation: gradientIdle 4s ease infinite; /* was 10s — faster */
  transition: transform 0.5s ease, box-shadow 0.25s ease;
}

/* Hover: accelerate color flow */
.nav-links a:hover {
  /* animation: gradientSpin 1s linear infinite; */
  transform: scale(1.07);
  box-shadow: 0 0 12px rgba(207, 167, 255, 0.6);
}

/* Idle subtle movement (now faster) */
@keyframes gradientIdle {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Hover: dynamic spin/shift effect */
@keyframes gradientSpin {
  0% { background-position: 0% 50%; }
  25% { background-position: 50% 0%; }
  50% { background-position: 100% 50%; }
  75% { background-position: 50% 100%; }
  100% { background-position: 0% 50%; }
}

/* Show drawer when open */
.nav-links.open { transform: translateX(0); }

/* Make the button slide left by the drawer width when open */
.menu-open .hamburger {
    transform: translateX(calc(-1 * var(--menu-width)));
    transition: transform 220ms ease-out;
}

/* Backdrop */
.backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.28);
    z-index: 1100;                 /* < drawer (1200) < button (2000) */
    opacity: 0;
    transition: opacity 200ms ease-out;
}
.backdrop.show { opacity: 1; }

/* Prevent body scroll when open */
.no-scroll { overflow: hidden; touch-action: none; }

/* Desktop: inline menu, no drawer/button/backdrop */
@media (min-width: 768px) {
    .hamburger, .backdrop { display: none !important; }

    .nav-links {
        position: static;
        height: auto;
        max-width: none;
        transform: none !important;
        padding: 0;
        background: transparent;
        flex-direction: row;
        gap: 10px;
        margin-left: auto;          /* push links to the right of the logo */
        align-items: center;
        overflow: visible;
    }

    .navbar {
        padding: 0 5vw;
        box-sizing: border-box;
        width: 100%;
    }
}

/* Navbar and hamburgers end here */

/* hero section starts here */

.hero {
    display: grid;
    grid-template-rows: auto auto auto;
    justify-items: center;
    text-align: center;
    gap: 3rem;
    padding: 2rem 1rem;
    max-width: 1000px;
    margin: 0 auto;
}

.hero img {
    width: 80%;
    height: auto;
}

.info {
    justify-self: start;
    text-align: left;
}

.info h2 {
    margin: 0.3rem 0;
    font-weight: normal;
    font-size: 30px;
}

.quote {
    justify-self: end;
    text-align: left;
    font-style: italic;
}

/* hero ends here */

.title {
    display: flex;
    justify-content: center;
    font-size: 30px;
    margin-bottom: 2rem;
}

/* what we do section starts here */

.features {
    display: grid;
    align-items: center;
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem 1rem;
    gap: 2rem;
    text-align: center;
}

.features img {
    display: block;
    margin: 0 auto;
    margin-bottom: 5rem;
    max-width: 300px;
    max-height: 300px;
    border-radius: 50px;
}

.desc h3 {
    font-size: 30px;
    margin-bottom: 20px;
}

/* makes it work on desktop */
@media (min-width: 768px) {
.features {
    grid-template-columns: 1fr 1fr; /* ← two columns on larger screens */
    gap: 5rem 0;
    text-align: left;
}
.features img {
    transition: transform 0.5s ease;
}
.features img:hover {
    transform: scale(1.15);
}

.desc {
    justify-self: center;
}

.swap-order {
    grid-row: 2/3;
    grid-column: 1/2;
}
.text-swap {
    justify-self: center;
    text-align: right;
}

.features {
    justify-items: center;
}

.features img {
    margin-bottom: 0;
}

}

/* what we do ends here */

/* gallery starts here */

.gallery-grid {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    max-width: 1500px;
    margin: 0 auto;
}

.gallery-grid img {
    height: 300px;
    width: auto;
    margin: 10px;
    border-radius: 50px;
}

/* gallery ends here */

/* about starts here */

.aboutCon {
    display: flex;
    justify-content: center;
    align-items: center;
}

.aboutDec h2 {
    padding: 20px 0px;
}

.aboutDec {
    max-width: 600px;
}

.aboutImg {
    height: 175px;
    border: 1px solid hotpink;
    border-radius: 100%;
}

/* about ends here */

/* contacts starts here */
.tags {
    display: flex;
    gap: 25px;
    justify-content: center;
    margin-bottom: 50px;
    font-size: 50px;
}

.tags a {
    display: inline-block;
    background: linear-gradient(135deg, #f7baff, #D0A8F0, #6FD59D);
    background-size: 300% 300%;
    animation: gradientIdle 4s ease infinite;
    
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;

    transition: transform 0.5s ease;

    /* animation: gradientIdle 4s ease infinite; */
}

.tags a:hover {
    transform: scale(1.2);
}

/* contacts ends here */


/* footer starts here */

footer {
    position: static;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    background: rgba(0,0,0,.6);
    height: 50px;
    overflow: visible;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-top: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 -2px 8px rgba(0,0,0,.15);
    box-sizing: border-box;
    z-index: 10;
    color: #fff;
    padding: 15px;
}

footer a {
    color: pink;
    text-decoration: none;
    cursor: pointer;
}

@media (min-width: 768px) {
    footer {
        flex-direction: row;
        justify-content: space-around;
    }
}

@supports (-webkit-touch-callout: none) {
  footer { bottom: -0.5px; }
}

/* footer ends here */



/* testing section */

