@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f7f8f5;--surface:#fff;--text:#20251f;--muted:#687067;--line:#e3e7df;--accent:#466b4a;--accent-dark:#345338;--soft-green:#e9f0e7;--width:1120px;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 "DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif}img{display:block;max-width:100%}a{color:inherit}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #7eaa7a;outline-offset:4px}.container{width:min(var(--width),calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;left:-9999px;top:8px;z-index:20;padding:10px 14px;background:#fff}.skip-link:focus{left:8px}.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid rgb(227 231 223 / 85%);background:rgb(247 248 245 / 94%);backdrop-filter:blur(14px)}.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:800 1.2rem/1.1 Manrope,sans-serif;letter-spacing:-.06em;text-decoration:none;white-space:nowrap}.brand span{font-weight:500}.brand i{color:var(--accent);font-style:normal}.nav-links{display:flex;align-items:center;gap:27px}.nav-links>a:not(.button){font-size:.93rem;color:var(--muted);text-decoration:none}.nav-links>a:not(.button):hover,.social-links a:hover{color:var(--accent)}.menu-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.menu-toggle span{display:block;width:19px;height:2px;margin:4px auto;background:var(--text)}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 20px;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:#fff!important;font-weight:700;text-decoration:none;transition:background .2s,transform .2s,border-color .2s}.button:hover{transform:translateY(-2px);background:var(--accent-dark);border-color:var(--accent-dark)}.button-small{min-height:41px;padding:9px 16px;font-size:.9rem}.button-outline{background:transparent;color:var(--accent)!important}.button-outline:hover{background:var(--soft-green)}.text-link{display:inline-flex;align-items:center;gap:7px;color:var(--accent-dark);font-weight:700;text-underline-offset:5px}.hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:center;gap:70px;padding-top:92px;padding-bottom:95px}.eyebrow{display:flex;align-items:center;gap:9px;margin:0 0 16px;color:var(--accent);font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.eyebrow-dot{width:8px;height:8px;border-radius:50%;background:#70a875;box-shadow:0 0 0 4px #e1ecdf}h1,h2,h3,p{overflow-wrap:break-word}h1,h2,.about-heading{font-family:Manrope,sans-serif;letter-spacing:-.065em}h1{max-width:760px;margin:0;font-size:clamp(3.1rem,6.5vw,5.8rem);line-height:1.02;font-weight:800}h1 span{color:var(--accent)}.hero-description{max-width:670px;margin:24px 0 0;color:var(--muted);font-size:1.12rem;line-height:1.8}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:13px;margin-top:29px}.social-links{display:flex;gap:23px;margin-top:28px}.social-links a{color:var(--muted);font-size:.94rem;text-underline-offset:4px}.hero-profile{position:relative;max-width:370px;width:100%;justify-self:end}.profile-frame{overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,#e1eadd,#c0d2bc)}.profile-frame img{width:100%;height:100%;object-fit:cover}.profile-placeholder,.image-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:#345338}.profile-placeholder>span{display:grid;place-items:center;width:90px;height:90px;border:1px solid #8aa58a;border-radius:50%;font:800 2rem Manrope}.profile-placeholder p{font-weight:700}.profile-placeholder small,.image-placeholder small{font-size:.78rem;font-weight:500}.profile-caption{position:absolute;right:-22px;bottom:25px;display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 12px 35px #1c2a1b12}.caption-mark{font-size:1.6rem;color:var(--accent)}.profile-caption strong,.profile-caption small{display:block}.profile-caption small{color:var(--muted);font-size:.8rem}.section{padding-top:86px;padding-bottom:86px}.section-tint{background:#eff2ec;border-block:1px solid #e5e9e1}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:10px}.section-heading h2,.contact-copy h2{max-width:680px;margin:0;font-size:clamp(2rem,4.2vw,3.3rem);line-height:1.13}.section-intro{max-width:390px;margin:0;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 23px}.filter-button{padding:9px 15px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#596257;cursor:pointer;font-size:.88rem}.filter-button:hover,.filter-button.is-active{border-color:var(--accent);background:var(--accent);color:#fff}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.project-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px #20251f0c}.project-card[hidden]{display:none}.project-image{position:relative;display:grid;place-items:center;aspect-ratio:720/440;overflow:hidden;background:#dce8d9}.project-image img{width:100%;height:100%;object-fit:cover}.project-image-green{background:linear-gradient(135deg,#dce8d9,#a9c3a7)}.project-image-blue{background:linear-gradient(135deg,#dce2f0,#a8b6d2)}.project-image-sand{background:linear-gradient(135deg,#f1e3d1,#d5b99b)}.project-image-lilac{background:linear-gradient(135deg,#eee0e9,#c8a9bc)}.image-placeholder span{font:800 clamp(1.6rem,4vw,2.5rem) Manrope;letter-spacing:-.06em}.status{position:absolute;top:15px;left:15px;padding:5px 10px;border:1px solid #ffffffa6;border-radius:999px;background:#ffffffeb;color:#394338;font-size:.73rem;font-weight:700}.status-progress{color:#6d511b}.status-concept{color:#3e4d7a}.status-check{color:#62685e}.project-content{padding:24px}.project-title-row{display:flex;justify-content:space-between;align-items:start;gap:12px}.project-content h3,.skill-card h3,.timeline-item h3{margin:0;font:700 1.2rem Manrope,sans-serif;letter-spacing:-.035em}.project-number{color:#9ba398;font-size:.8rem;font-weight:700}.project-content p{margin:12px 0 0;color:var(--muted);font-size:.94rem}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.tags span{padding:5px 9px;border-radius:7px;background:#f0f2ee;color:#535b50;font-size:.76rem}.project-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:21px}.project-links a{color:var(--accent-dark);font-size:.9rem;font-weight:700;text-underline-offset:4px}.project-links a[aria-disabled="true"]{color:#7b8278;text-decoration-style:dotted}.note{margin:20px 0 0;color:var(--muted);font-size:.84rem}.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.skill-card{position:relative;padding:25px;border:1px solid #dfe5db;border-radius:16px;background:#fff}.skill-index{display:inline-block;margin-bottom:25px;color:var(--accent);font-size:.8rem;font-weight:800}.skill-card h3{font-size:1.05rem}.skill-card p{margin:10px 0 0;color:var(--muted);font-size:.92rem}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px}.about-heading{max-width:500px;margin:0;font-size:clamp(2.4rem,4.7vw,4rem);line-height:1.12}.about-copy p{margin:0 0 17px;color:var(--muted)}.about-copy strong{color:var(--text)}.about-copy .text-link{margin-top:5px}.timeline{max-width:900px;margin-inline:auto;display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:145px 1fr;gap:30px;padding:25px 0;border-bottom:1px solid #dce2d7}.timeline-item:first-child{padding-top:0}.timeline-item:last-child{border-bottom:0;padding-bottom:0}.timeline-date{color:var(--accent);font-size:.86rem;font-weight:700}.timeline-item h3{font-size:1.1rem}.timeline-item .role{margin:4px 0;color:#50594d;font-size:.91rem;font-weight:700}.timeline-item p:not(.role){max-width:690px;margin:7px 0 0;color:var(--muted);font-size:.93rem}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:start}.contact-copy h2{font-size:clamp(2.3rem,4.4vw,3.7rem)}.contact-copy>p:not(.eyebrow){max-width:490px;color:var(--muted)}.contact-details{display:flex;flex-wrap:wrap;gap:20px;margin-top:25px}.contact-details a{color:var(--accent-dark);font-weight:700;text-underline-offset:4px}.contact-form{padding:27px;border:1px solid var(--line);border-radius:18px;background:#fff}.form-row{display:grid;gap:7px;margin-bottom:17px}.form-row label{font-size:.88rem;font-weight:700}.form-row input,.form-row textarea{width:100%;min-width:0;padding:12px 13px;border:1px solid #d9ded5;border-radius:10px;background:#fcfdfb;color:var(--text)}.form-row textarea{resize:vertical}.form-note{margin:13px 0 0;color:var(--muted);font-size:.8rem}.site-footer{border-top:1px solid var(--line);padding:25px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.footer-inner p{margin:0;color:var(--muted);font-size:.85rem}
@media(max-width:900px){.hero{grid-template-columns:minmax(0,1.1fr) minmax(220px,.7fr);gap:35px;padding-top:70px}.profile-caption{right:-8px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout,.contact-layout{gap:40px}}
@media(max-width:700px){.container{width:min(var(--width),calc(100% - 32px))}.nav{min-height:68px}.menu-toggle{display:block}.nav-links{position:absolute;top:calc(100% + 1px);left:0;right:0;display:none;align-items:stretch;gap:0;padding:10px 16px 18px;border-bottom:1px solid var(--line);background:var(--bg)}.nav-links.is-open{display:flex;flex-direction:column}.nav-links>a:not(.button){padding:12px 8px;font-size:1rem}.nav-links .button{margin-top:8px}.hero{grid-template-columns:1fr;gap:38px;padding-top:61px;padding-bottom:65px}.hero-copy{order:1}.hero-profile{order:0;justify-self:start;max-width:245px}.profile-caption{right:-38px;bottom:15px;padding:11px 13px}.profile-caption small{font-size:.72rem}h1{font-size:clamp(3rem,12vw,4.5rem)}.hero-description{font-size:1.02rem}.section{padding-top:64px;padding-bottom:64px}.section-heading{align-items:start;flex-direction:column;gap:13px}.projects-grid{grid-template-columns:1fr}.project-content{padding:21px}.skills-grid{grid-template-columns:1fr}.skill-card{padding:22px}.skill-index{margin-bottom:17px}.about-layout,.contact-layout{grid-template-columns:1fr;gap:25px}.about-heading{font-size:clamp(2.3rem,10vw,3.4rem)}.timeline-item{grid-template-columns:1fr;gap:7px;padding:21px 0}.timeline-date{font-size:.8rem}.contact-form{padding:20px}.footer-inner{align-items:flex-start;flex-direction:column;gap:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ================================
   PROJECTS SECTION — STYLE ONLY
================================ */

.projects {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    margin-top: 35px;
    align-items: stretch;
}

.project-card {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border: 1px solid #e8ece9;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 6px 24px rgba(0, 0, 0, 0.045);
    transition: transform 0.3s ease, box-shadow 0.3s ease,
                border-color 0.3s ease;
}

.project-card:hover {
    transform: translateY(-7px);
    box-shadow: 0 16px 35px rgba(0, 0, 0, 0.09);
    border-color: #b8d9c5;
}

.project-card img {
    display: block;
    width: 100%;
    height: 240px;
    object-fit: cover;
    background: #f1f4f2;
    transition: transform 0.4s ease;
}

.project-card:hover img {
    transform: scale(1.025);
}

.project-card h3 {
    margin: 22px 22px 10px;
    color: #172b21;
    font-size: 1.3rem;
    line-height: 1.4;
    font-weight: 700;
}

.project-card p {
    margin: 0 22px 18px;
    color: #657168;
    font-size: 0.96rem;
    line-height: 1.8;
}

.project-card .tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 22px 22px;
}

.project-card .tags span,
.project-card .tag {
    display: inline-flex;
    align-items: center;
    padding: 7px 12px;
    border-radius: 7px;
    background: #edf6f0;
    color: #287348;
    font-size: 0.78rem;
    font-weight: 600;
}

.project-card a {
    color: #287348;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.project-card a:hover {
    color: #174c2e;
    text-decoration: underline;
}

/* Project links, if present */
.project-card .project-links {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: auto 22px 22px;
    padding-top: 4px;
}

/* Tablet */
@media (max-width: 900px) {
    .projects {
        gap: 20px;
    }

    .project-card img {
        height: 210px;
    }

    .project-card h3 {
        font-size: 1.15rem;
    }
}

/* Mobile */
@media (max-width: 600px) {
    .projects {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .project-card img {
        height: 230px;
    }

    .project-card h3 {
        margin: 18px 18px 8px;
    }

    .project-card p {
        margin: 0 18px 16px;
    }

    .project-card .tags {
        margin: 0 18px 18px;
    }

    .project-card .project-links {
        margin: auto 18px 18px;
    }
}
