/*NOUR AAWAR - PORTFOLIO*/

/*a sticker notice*/
#sticker-notice { 
    position: fixed; 
    top: calc(var(--nav-h) + 1rem); 
    left: 50%; 
    transform: translateX(-50%); 
    background: var(--white); 
    border: 1.5px solid var(--accent-light); 
    color: var(--text-muted); 
    font-family: 'Inter', sans-serif; 
    font-size: 0.8rem; 
    font-weight: 500; 
    letter-spacing: 0.03em; 
    padding: 0.55rem 1.2rem; 
    border-radius: 999px; 
    box-shadow: 0 4px 16px rgba(192, 120, 128, 0.12); 
    pointer-events: none; 
    z-index: 9998; 
    white-space: nowrap; 
    animation: notice-show 4.5s ease forwards; 
}

@keyframes notice-show { 
    0% {opacity: 0; transform: translateX(-50%) translateY(-8px); }
    12% {opacity: 1; transform: translateX(-50%) translateY(0); }
    75% {opacity: 1; transform: translateX(-50%) translateY(0); }
    100% {opacity: 0; transform: translateX(-50%) translateY(-4px); }
}

/*reset*/
*, *::before, *::after {box-sizing: border-box; margin: 0; padding: 0; }
img {display: block; max-width: 100%; }
a {text-decoration: none; }
button {font-family: inherit; }

/*CSS variables*/
:root { 
    --pink: #FFF4F4; 
    --beige: #F5F0EA; 
    --white: #FAFAFA; 
    --accent: #C07880; 
    --accent-deep: #9E5F67; 
    --accent-light: #EDD5D8; 
    --text: #2A2A2A; 
    --text-muted: #7A7070; 
    --border: #E8DEDD; 
    --nav-h: 66px; 
    --max-w: 1040px; 
}

/*the base*/ 
html { 
    scroll-behavior: smooth; 
    cursor: none; 
}

body { 
    font-family: 'Inter', sans-serif; 
    background: var(--pink); 
    color: var(--text); 
    overflow-x: hidden; 
    line-height: 1.6; 
    position: relative; 
}

/*a custom cursor*/ 
#cursor-dot {
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 64px; 
    height: 64px; 
    pointer-events: none; 
    z-index: 9999; 
    transform: translate(-50%, -50%); 
    will-change: transform; 
}

#cursor-dot img { 
    width: 64px; 
    height: 64px; 
    object-fit: contain; 
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.18)); 
}

/*the sticker layer*/ 
#sticker-layer { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    pointer-events: none; 
    z-index: 9000; 
}

.sticker-stamp { 
    position: absolute; 
    width: 72px; 
    height: 72px; 
    pointer-events: none;
    transform: rotate(var(--rot)); 
    animation: stamp-in 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.4) both; 
}

.sticker-stamp img, 
.sticker-stamp svg { 
    width: 100%; 
    height: 100%; 
    object-fit: contain; 
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.1)); 
}

@keyframes stamp-in { 
    from {opacity: 0; transform: scale(0.2) rotate(var(--rot)); }
    to {opacity: 1; transform: scale(1) rotate(var(--rot)); }
}

/*navigation*/ 
#navbar { 
    position: fixed; 
    top: 0; 
    left: 0; 
    right: 0; 
    height: var(--nav-h); 
    background: rgba(255, 244, 244, 0.88); 
    backdrop-filter: blur(14px); 
    -webkit-backdrop-filter: blur(14px); 
    border-bottom: 1px solid var(--border); 
    display: flex; 
    align-items: center; 
    justify-content: space-between; 
    padding: 0 3rem; 
    z-index: 1000; 
}

.nav-logo { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.15rem; 
    font-weight: 600; 
    color: var(--accent-deep); 
    letter-spacing: 0.03em; 
    flex-shrink: 0; 
}

#nav-menu { 
    display: flex; 
    gap: 0.15rem; 
}

.nav-link { 
    font-size: 0.82rem; 
    font-weight: 500; 
    color: var(--text-muted); 
    padding: 0.4rem 0.8rem; 
    border-radius: 999px; 
    transition: background 0.2s, color 0.2s; 
    letter-spacing: 0.02em; 
}

.nav-link:hover, 
.nav-link.active { 
    background: var(--accent-light); 
    color: var(--accent-deep); 
}

/*hamburger (mobile)*/
.hamburger { 
    display: none; 
    flex-direction: column; 
    gap: 5px; 
    background: none; 
    border: none; 
    padding: 4px; 
    cursor: none; 
}

.hamburger span { 
    display: block;
    width: 22px; 
    height: 2px; 
    background: var(--text); 
    border-radius: 2px; 
    transition: transform 0.25s, opacity 0.25s; 
}

.hamburger.open span:nth-child(1) {transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) {opacity: 0; }
.hamburger.open span:nth-child(3) {transform: translateY(-7px) rotate(-45deg); }

/*section basics*/ 
.section { 
    min-height: 100vh; 
    padding: calc(var(--nav-h) + 5rem) 3rem 6rem; 
    display: flex; 
    align-items: center; 
}

.section.beige {background: var(--beige); }

.section-inner { 
    max-width: var(--max-w); 
    margin: 0 auto; 
    width: 100%; 
}

.section-title { 
    font-family: 'Playfair Display', serif; 
    font-size: clamp(2rem, 4vw, 2.9rem); 
    font-weight: 600; 
    color: var(--text); 
    margin-bottom: 2.75rem; 
}

.section-title::after { 
    content: ''; 
    display: block; 
    width: 44px; 
    height: 3px; 
    background: var(--accent); 
    border-radius: 2px; 
    margin-top: 0.55rem; 
}

/*the hero*/
#home { 
    min-height: 100vh; 
    display: flex; 
    flex-direction: column; 
    padding: 0; 
    justify-content: space-between; 
    position: relative; 
    overflow: hidden; 
}

.hero-center { 
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0rem;
    padding: calc(var(--nav-h) - 2rem) clamp(2rem, 5vw, 5rem) 2rem;
    margin-left: 12vw;
    flex-grow: 1;
}

.hero-hi { 
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-size: clamp(1.4rem, 2.5vw, 2rem);
    color: var(--accent);
    white-space: nowrap;
    margin: 0;
    line-height: 1;
    transform: rotate(-25deg) translate(-20px, -150px);
    transform-origin: center center;
    display: inline-block;  
}

.hero-name-block {max-width: 420px; margin-top: 120px; margin-left: -4vw; }

.hero-text {flex: 1; max-width: 520px; }

.eyebrow { 
    font-size: 0.95rem; 
    font-weight: 400; 
    color: var(--accent); 
    letter-spacing: 0.1rem; 
    margin-bottom: 0.4rem; 
    text-transform: lowercase; 
}

h1 { 
    font-family: 'Playfair Display', serif; 
    font-size: clamp(3.8rem, 9vw, 7rem); 
    font-weight: 700; 
    line-height: 0.95; 
    color: var(--text); 
    margin-bottom: 1.3rem; 
}

.subtitle { 
    font-size: 1rem; 
    color: var(--text-muted); 
    line-height: 1.8; 
    margin-bottom: 2.2rem; 
}

.subtitle em { 
    color: var(--accent-deep); 
    font-style: italic; 
}

/*the hero buttons*/
.hero-links { 
    display: flex; 
    align-items: center; 
    gap: 0.9rem; 
    flex-wrap: wrap; 
}

.pill-btn { 
    display: inline-flex; 
    align-items: center; 
    background: var(--accent);
    color: #fff; 
    font-size: 0.88rem; 
    font-weight: 500; 
    padding: 0.65rem 1.6rem; 
    border-radius: 999px; 
    transition: background 0.2s, transform 0.2s; 
    letter-spacing: 0.02em;  
}
.pill-btn:hover {background: var(--accent-deep); transform: translateY(-2px); }

.icon-link { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    width: 40px; 
    height: 40px; 
    border-radius: 50%; 
    border: 1.5px solid var(--border); 
    color: var(--text-muted); 
    transition: border-color 0.2s, color 0.2s, transform 0.2s; 
}
.icon-link:hover { 
    border-color: var(--accent); 
    color: var(--accent); 
    transform: translateY(-2px); 
}

/*the hero doodle*/
.hero-doodle { 
    flex: 0 0 auto; 
    display: flex; 
    align-items: center; 
}

.cat-walking-video { 
    position: absolute; 
    left: 0; 
    bottom: 10vh; 
    height: clamp(270px, 35vw, 500px); 
    object-fit: contain; 
    object-position: left bottom; 
    mix-blend-mode: multiply;
}

/*my hero video*/
.nour-hero-video { 
    width: clamp(280px, 28vw, 420px); 
    display: block; 
    mix-blend-mode: multiply; 
}

/*the education*/
.education-grid { 
    display: grid; 
    grid-template-columns: 1fr 1fr; 
    gap: 3.5rem; 
    align-items: center; 
}

.education-text .lead{ 
    font-size: 1.08rem; 
    font-weight: 500; 
    line-height: 1.8; 
    margin-bottom: 1rem; 
    color: var(--text); 
}

.education-text p { 
    font-size: 0.95rem; 
    color: var(--text-muted); 
    line-height: 1.85; 
}

.edu-card { 
    background: var(--white); 
    border: 1px solid var(--border); 
    border-radius: 18px; 
    padding: 2.2rem; 
    box-shadow: 0 4px 20px rgba(192, 120, 128, 0.06); 
}

.edu-badge { 
    font-size: 2rem; 
    margin-bottom: 1rem; 
    line-height: 1; 
}

.edu-card h3 { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.05rem; 
    font-weight: 600; 
    margin-bottom: 0.4rem; 
}

.edu-card p { 
    font-size: 0.875rem; 
    color: var(--text-muted); 
    line-height: 1.65; 
    margin-bottom: 0.2rem; 
}

.edu-meta { 
    color: var(--accent) !important; 
    font-weight: 500; 
    font-size: 0.82rem !important;
}

/*for the projects*/
.projects-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); 
    gap: 1.5rem; 
}

.project-card { 
    background: var(--white); 
    border: 1px solid var(--border); 
    border-radius: 18px; 
    padding: 1.85rem; 
    transition: transform 0.25s ease, box-shadow 0.25s ease; 
    display: flex; 
    flex-direction: column; 
    gap: 0.8rem; 
}

.project-card:hover { 
    transform: translateY(-5px); 
    box-shadow: 0 14px 36px rgba(192, 120, 128, 0.13);
}

.project-card--soon { 
    background: var(--accent-light); 
    border-color: transparent; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    min-height: 180px; 
}

.soon-text { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.15rem; 
    font-style: italic; 
    color: var(--accent-deep); 
    text-align: center; 
    line-height: 1.6; 
}

.project-header { 
    display: flex; 
    align-items: flex-start; 
    justify-content: space-between; 
    gap: 0.8rem; 
}

.project-header h3 { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.08rem; 
    font-weight: 600; 
    line-height: 1.3; 
}

.project-tag { 
    font-size: 0.68rem; 
    font-weight: 600; 
    letter-spacing: 0.06em; 
    text-transform: uppercase; 
    background: var(--accent-light); 
    color: var(--accent-deep); 
    padding: 0.25rem 0.7rem; 
    border-radius: 999px; 
    white-space: nowrap; 
    flex-shrink: 0; 
}

.project-card > p { 
    font-size: 0.875rem; 
    color: var(--text-muted); 
    line-height: 1.78; 
    flex: 1; 
}

.project-card strong {color: var(--text); font-weight: 600; }

.project-github { 
    display: inline-flex; 
    align-items: center; 
    gap: 0.4rem; 
    font-size: 0.8rem; 
    font-weight: 500; 
    color: var(--accent-deep); 
    text-decoration: none; 
    margin-top: 0.5rem; 
    transition: color 0.2s; 
}

.project-github:hover {color: var(--accent); }

.tech-tags { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 0.4rem; 
    margin-top: auto; 
}

.tech-tags span { 
    font-size: 0.7rem; 
    font-weight: 500; 
    background: var(--pink); 
    color: var(--accent-deep); 
    border: 1px solid var(--accent-light); 
    padding: 0.2rem 0.65rem; 
    border-radius: 999px; 
}

/*skills*/
.skills-grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); 
    gap: 1.4rem; 
}

.skill-group { 
    background: var(--white); 
    border: 1px solid var(--border); 
    border-radius: 18px; 
    padding: 1.6rem; 
}

.skill-group h4 { 
    font-size: 0.72rem; 
    font-weight: 600; 
    letter-spacing: 0.1em; 
    text-transform: uppercase; 
    color: var(--accent); 
    margin-bottom: 1rem; 
}

.skill-pills { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 0.4rem; 
}

.skill-pills span { 
    font-size: 0.8rem; 
    background: var(--pink); 
    color: var(--text); 
    border: 1px solid var(--border); 
    padding: 0.3rem 0.8rem; 
    border-radius: 999px; 
    transition: background 0.2s, border-color 0.2s; 
}

.skill-pills span:hover { 
    background: var(--accent-light); 
    border-color: var(--accent-light); 
}

/*the training timeline*/
.timeline { 
    position: relative; 
    padding-left: 2rem; 
}

.timeline::before { 
    content: ''; 
    position: absolute; 
    left: 0; 
    top: 0.3rem; 
    bottom: 0; 
    width: 2px; 
    background: var(--accent-light); 
    border-radius: 2px; 
}

.timeline-item { 
    position: relative; 
    margin-bottom: 2.5rem; 
}

.timeline-dot { 
    position: absolute; 
    left: -2.41rem; 
    top: 0.3rem; 
    width: 13px; 
    height: 13px; 
    background: var(--accent); 
    border-radius: 50%; 
    border: 3px solid var(--pink); 
    box-shadow: 0 0 0 2px var(--accent-light); 
}

.timeline-content h3 { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.08rem; 
    margin-bottom: 0.35rem; 
}

.timeline-date { 
    font-size: 0.78rem; 
    font-weight: 600; 
    color: var(--accent); 
    letter-spacing: 0.04em; 
    margin-bottom: 0.6rem; 
}

.timeline-content p { 
    font-size: 0.9rem; 
    color: var(--text-muted); 
    line-height: 1.8; 
}

/*activities*/
.activities-grid { 
    display: grid; 
    grid-template-columns: 1fr 1fr; 
    gap: 1.5rem; 
    margin-bottom: 3rem; 
}

.activity-card { 
    background: var(--white); 
    border: 1px solid var(--border); 
    border-radius: 18px; 
    padding: 1.85rem; 
    display: flex; 
    flex-direction: column; 
    gap: 0.6rem; 
}

.activity-card h3 { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.05rem; 
    font-weight: 600; 
}

.role-badge { 
    display: inline-block; 
    align-self: flex-start; 
    font-size: 0.68rem; 
    font-weight: 600; 
    text-transform: uppercase; 
    letter-spacing: 0.07em; 
    background: var(--accent-light); 
    color: var(--accent-deep); 
    padding: 0.2rem 0.65rem; 
    border-radius: 999px; 
}

.activity-card p {
    font-size: 0.875rem; 
    color: var(--text-muted); 
    line-height: 1.75; 
}

/*languages*/
.lang-grid { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: center; 
    gap: 1.5rem; 
}

.lang-card { 
    background: var(--white); 
    border: 1px solid var(--border); 
    border-radius: 18px; 
    padding: 1.75rem 2rem; 
    display: flex; 
    flex-direction: column; 
    gap: 1.1rem; 
    flex: 0 1 260px; 
    min-width: 220px; 
}

.lang-card-top { 
    display: flex; 
    flex-direction: column; 
    gap: 0.35rem; 
}

.lang-card-name { 
    font-family: 'Playfair Display', serif; 
    font-size: 1.2rem; 
    font-weight: 600; 
    color: var(--text); 
    line-height: 1.3; 
}

.lang-card-level { 
    font-size: 0.72rem; 
    font-weight: 600; 
    letter-spacing: 0.1em; 
    text-transform: uppercase; 
    color: var(--accent); 
}

/*progress bar*/
.lang-bar-track { 
    width: 100%; 
    height: 5px; 
    background: var(--accent-light); 
    border-radius: 999px; 
    overflow: hidden; 
}

.lang-bar-fill { 
    height: 100%; 
    width: var(--pct); 
    background: var(--accent); 
    border-radius: 999px; 
    transform-origin: left; 
    transform: scaleX(0); 
    transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1); 
}

/*trigger bar fill when card becomes visible*/ 
.lang-card.visible .lang-bar-fill { 
    transform: scaleX(1); 
}

/*the dot indicators*/ 
.lang-dots { 
    display: flex; 
    gap: 0.5rem; 
}

.dot { 
    width: 10px; 
    height: 10px; 
    border-radius: 50%; 
    border: 1.5px solid var(--accent); 
    flex-shrink: 0; 
    transition: background 0.3s; 
}

.dot.filled {background: var(--accent); }
.dot.half {background: linear-gradient(to right, var(--accent) 50%, transparent 50%); }
.dot.empty {background: transparent; }

/*fun facts*/
.funfacts-hint { 
    font-size: 0.9rem; 
    color: var(--text-muted); 
    margin-bottom: 2.5rem; 
    margin-top: -1.5rem; 
}

.funfacts-grid { 
    display: flex; 
    flex-wrap: wrap; 
    gap: 1.5rem; 
    justify-content: center; 
}

.fact-card { 
    width: 180px; 
    height: 320px; 
    perspective: 1000px; 
    cursor: pointer; 
}

.fact-card-inner { 
    width: 100%; 
    height: 100%; 
    position: relative; 
    transform-style: preserve-3d; 
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); 
}

.fact-card.flipped .fact-card-inner { 
    transform: rotateY(180deg); 
}

.fact-card-front, 
.fact-card-back { 
    position: absolute; 
    inset: 0; 
    border-radius: 20px; 
    backface-visibility: hidden;
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    justify-content: center; 
    gap: 1rem; 
    padding: 1.5rem; 
}

.fact-card-front { 
    background: var(--accent-light); 
    border: 2px dashed var(--accent); 
}

.fact-card-front span { 
    font-size: 2rem; 
    color: var(--accent); 
    animation: spin-slow 6s linear infinite; 
}

@keyframes spin-slow { 
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.fact-card-back { 
    background: white; 
    border: 2px solid var(--accent-light); 
    box-shadow: 0 8px 24px rgba(192, 120, 128, 0.12); 
    transform: rotateY(180deg); 
    text-align: center; 
}

.fact-emoji { 
    font-size: 2.2rem; 
}

.fact-img { 
    width: 100%; 
    max-height: 170px; 
    object-fit: contain; 
    border-radius: 8px; 
}

.fact-img--multiply { 
    mix-blend-mode: multiply; 
}

.fact-plushies { 
    position: relative; 
    width: 130px; 
    height: 110px; 
    flex-shrink: 0; 
}

.plushie-img { 
    position: absolute; 
    width: 80px; 
    height: 90px; 
    object-fit: contain; 
    border-radius: 8px; 
}

.plushie-left { 
    left: 0; 
    bottom: 0; 
    width: 75px; 
    height: 85px; 
    transform: rotate(-8deg); 
    z-index: 2; 
}

.plushie-right { 
    right: -15px; 
    bottom: 0; 
    width: 115px; 
    height: 135px; 
    transform: rotate(8deg); 
    z-index: 1; 
}

.fact-card-back p { 
    font-size: 0.88rem; 
    color: var(--text); 
    line-height: 1.5; 
    margin: 0; 
}

/*contact*/
.contact-inner { 
    max-width: 640px; 
    margin: 0 auto; 
    text-align: center; 
}

.contact-inner .section-title::after { 
    margin-left: auto; 
    margin-right: auto; 
    width: 320px; 
}

.contact-sub { 
    font-size: 0.98rem; 
    color: var(--text-muted); 
    line-height: 1.8;
    margin-bottom: 2.75rem; 
}

.contact-links { 
    display: flex; 
    flex-direction: column; 
    gap: 1rem; 
    width: 100%; 
    max-width: 480px; 
    margin: 0 auto; 
}

.contact-card { 
    display: flex; 
    align-items: center; 
    gap: 1rem; 
    background: var(--white); 
    border: 1.5px solid var(--border); 
    border-radius: 14px; 
    padding: 1.1rem 1.5rem; 
    color: var(--text-muted); 
    font-size: 0.9rem; 
    transition: border-color 0.2s, color 0.2s, transform 0.2s, box-shadow 0.2s; 
}

.contact-card:hover { 
    border-color: var(--accent); 
    color: var(--accent-deep); 
    transform: translateY(-2px); 
    box-shadow: 0 8px 24px rgba(192, 120, 128, 0.1); 
}

.contact-card svg { 
    flex-shrink: 0; 
    color: var(--accent); 
}

/*footer which is the humming scene*/
.footer-scene { 
    background: var(--pink); 
    border-top: 1px solid var(--border); 
    padding: 3.5rem 3rem 2.5rem; 
    text-align: center; 
}

.footer-doodles { 
    display: flex; 
    align-items: flex-end; 
    justify-content: center; 
    gap: 3rem; 
    margin-bottom: 1.8rem; 
}

/*the humming figure*/ 
.humming-figure { 
    position: relative; 
    display: flex;
    flex-direction: column; 
    align-items: center; 
}

.footer-nour { 
    width: clamp(160px, 22vw, 280px); 
    animation: hum-sway 3.5s ease-in-out infinite; 
    transform-origin: bottom center; 
}

@keyframes hum-sway { 
    0%, 100% {transform: rotate(-1.5deg) translateY(0); }
    50% {transform: rotate(1.5deg) translateY(-6px); }
}

/*some music notes to float up from above the head*/ 
.music-notes { 
    position: absolute; 
    /*sits above the top of the image and the notes drift upward from here*/ 
    bottom: 85%; 
    left: 50%; 
    transform: translateX(-50%); 
    width: 110px; 
    height: 0; 
    pointer-events: none; 
}

.note { 
    position: absolute; 
    bottom: 0; 
    font-size: 1.2rem; 
    color: var(--accent); 
    opacity: 0; 
    animation: note-rise 3.2s ease-in-out infinite; 
}

.n1 {left: 8px; animation-delay: 0s; font-size: 1.0rem; }
.n2 {left: 48px; animation-delay: 0.75s; font-size: 1.35rem; }
.n3 {left: 28px; animation-delay: 1.4s; font-size: 0.95rem; }
.n4 {left: 62px; animation-delay: 2.1s; font-size: 1.15rem; }
.n5 {left: 14px; animation-delay: 2.7s; font-size: 1.25rem; }

@keyframes note-rise {
    0% {transform: translateY(0) rotate(-6deg); opacity: 0; }
    12% {opacity: 1; }
    80% {opacity: 0.7; }
    100% {transform: translateY(-72px) rotate(14deg); opacity: 0; }
}

/*piano*/ 
.footer-piano { 
    width: clamp(100px, 14vw, 175px); 
    opacity: 0.88; 
    animation: piano-rock 7s ease-in-out infinite; 
    transform-origin: bottom center; 
}

@keyframes piano-rock { 
    0%, 100% {transform: rotate(-1deg); }
    50% {transform: rotate(1deg); }
}

/*resume download hint*/
.resume-hint {
    display: block; 
    margin-top: 0.6rem; 
    font-size: 0.78rem; 
    font-weight: 500; 
    letter-spacing: 0.06em; 
    color: var(--accent); 
    opacity: 0; 
    transform: translateY(4px); 
    transition: opacity 0.25s, transform 0.25s; 
}

.humming-figure:hover .resume-hint { 
    opacity: 1; 
    transform: translateY(0); 
}

.humming-figure:hover .footer-nour { 
    filter: drop-shadow(0 6px 18px rgba(192, 120, 128, 0.25)); 
}

.footer-credit {
    font-size: 0.76rem; 
    color: var(--text-muted); 
    letter-spacing: 0.05em; 
    margin-top: 0.5rem; 
}

/*scroll reveal*/ 
.reveal { 
    opacity: 0; 
    transform: translateY(22px); 
    transition: opacity 0.65s ease, transform 0.65s ease; 
}

.reveal.visible { 
    opacity: 1; 
    transform: translateY(0); 
}

.notice-mobile { display: none; }

@media (pointer: coarse) {
    .notice-desktop { display: none; }
    .notice-mobile { display: inline; }
}

/*responsive*/
@media (max-width: 820px) { 
    #navbar {padding: 0 1.5rem; }

    #home {
        height: 100vh; 
        min-height: unset; 
        overflow: visible; 
    }

    #nav-menu { 
        display: none; 
        position: fixed; 
        top: var(--nav-h); 
        left: 0; 
        right: 0; 
        background: rgba(255, 244, 244, 0.97); 
        backdrop-filter: blur(14px); 
        flex-direction: column; 
        gap: 0; 
        padding: 1rem 0 1.5rem;
        border-bottom: 1px solid var(--border); 
        z-index: 999; 
    }

    #nav-menu.open {display: flex; }

    .nav-link { 
        padding: 0.75rem 2rem; 
        border-radius: 0; 
        font-size: 0.9rem; 
    }

    .hamburger { 
        display: flex; 
    }

    /*hero stacks*/
    /* .hero-center { 
        flex-direction: column; 
        text-align: center; 
        padding: calc(var(--nav-h) + 2rem) 1.75rem 2rem; 
        gap: 1rem; 
    }

    .hero-hi { 
        transform: rotate(-35deg); 
    } */

    .hero-links { 
        justify-content: center; 
    }

    .hero-doodle { 
        align-self: center; 
    }

    .nour-hero-video { 
        width: clamp(260px, 70vw, 340px); 
    }

    .education-grid { 
        grid-template-columns: 1fr;
        gap: 2rem; 
    }

    .activities-grid { 
        grid-template-columns: 1fr;
    }

    .form-row { 
        grid-template-columns: 1fr;
    }

    .section { 
        padding: calc(var(--nav-h) + 3.5rem) 1.75rem 4rem; 
    }

    /*we hide the custom cursor on touch devices*/
    #cursor-dot{display: none; }

    /*some hero fixes*/
    .hero-center { 
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        margin-left: 0;
        padding: calc(var(--nav-h) + 2rem) 1.75rem 2rem;
        position: relative;  
    }

    .hero-hi { 
        position: absolute;
        bottom: 63%;
        left: 10%;
        transform: rotate(-25deg);
        margin: 0;
    }

    .hero-name-block { 
        width: 100%;
        margin-top: 0;
        margin-left: 0;
        text-align: center;
    }

    /*a smaller cat video*/ 
    .cat-walking-video { display: none; }


    /*let the fun facts be 2 per row*/ 
    .funfacts-grid { 
        gap: 1rem; 
    }

    .fact-card { 
        width: 150px; 
        height: 270px; 
    }
}

@media (max-width: 480px){ 
    h1{ 
        font-size: 3.2rem; 
    }

    .section-title { 
        font-size: 1.8rem; 
    }

    .footer-doodles { 
        flex-direction: column; 
        align-items: center; 
        gap: 1.5rem; 
    }
}