*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6dfb3;color:#1d2f28;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.portfolio{min-height:100vh;background:linear-gradient(145deg,#f8d89ad1,#f8cdcde0 42%,#f3e2c6f0),linear-gradient(180deg,#f7e4c0,#f8d7d5 46%,#f3e2c6)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(20px,5vw,72px);background:#fff6e9cc;border-bottom:1px solid rgba(55,82,70,.12);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand,.nav-links,.hero-actions,.tag-list{display:flex;align-items:center}.brand{gap:10px;color:#1d2f28;font-weight:800;text-decoration:none}.brand-mark{display:grid;width:34px;height:34px;place-items:center;color:#fff9f1;background:#0f6b54;border-radius:8px}.nav-links{gap:20px}.nav-links a,.footer a{color:#0f6b54;font-weight:700;text-decoration:none}.hero{display:flex;flex-direction:column;align-items:center;gap:34px;padding:clamp(64px,9vw,118px) clamp(20px,5vw,72px) 64px;text-align:center}.hero-copy{max-width:960px}.eyebrow,.project-type{margin:0 0 12px;color:#0f6b54;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:1040px;margin-bottom:24px;font-size:clamp(3.6rem,8vw,7.8rem);line-height:.93;letter-spacing:0}h2{margin-bottom:18px;font-size:clamp(2rem,4vw,3.6rem);line-height:1}h3{margin-bottom:14px;font-size:1.45rem}.hero-text,.intro p,.deploy p{max-width:720px;color:#4f5148;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.75}.hero-text{margin-left:auto;margin-right:auto}.hero-intro-line{margin:28px auto 0;max-width:760px;color:#0f6b54;font-size:clamp(1rem,2vw,1.15rem);font-weight:800;line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px}.button{min-height:46px;padding:13px 18px;border:0;border-radius:8px;font:inherit;font-weight:800;text-decoration:none}.button.primary{color:#fff9f1;background:#0f6b54}.button.secondary{color:#0f6b54;background:#fff9f1;border:1px solid rgba(15,107,84,.22)}.button.ghost{color:#1d2f28;background:#fff9f16b;border:1px solid rgba(29,47,40,.14)}.section{padding:64px clamp(20px,5vw,72px)}.intro{background:#0f6b54}.intro p{max-width:980px;margin:0;color:#fff9f1;font-size:clamp(1.35rem,3vw,2.2rem);line-height:1.45}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.about{display:grid;grid-template-columns:minmax(0,.95fr) minmax(280px,.72fr);gap:clamp(28px,6vw,80px);align-items:center;background:#fff9f1ad}.about-copy{display:grid;gap:6px}.about-copy p:not(.eyebrow){max-width:760px;color:#4f5148;font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.7}.about-image{margin:0}.about-image img{display:block;width:100%;max-height:620px;object-fit:contain;background:#fff9f1;border:1px solid rgba(55,82,70,.12);border-radius:8px;box-shadow:0 20px 58px #2f25141f}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.project-card{display:flex;min-height:420px;flex-direction:column;padding:26px;background:#fff9f1d1;border:1px solid rgba(55,82,70,.12);border-radius:8px;box-shadow:0 16px 48px #2f251414}.project-card p{color:#56564d;line-height:1.65}.tag-list{flex-wrap:wrap;gap:8px;margin:auto 0 18px;padding-top:18px}.tag-list span,.skill-list li{border:1px solid rgba(31,111,91,.18);background:#fff4dee6;color:#1b5d4c;font-size:.9rem;font-weight:800}.tag-list span{padding:7px 10px;border-radius:999px}.project-card strong{color:#1d2f28;line-height:1.5}.project-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.project-link,.project-detail-button{display:inline-flex;align-items:center;min-height:40px;padding:10px 12px;border-radius:8px;font:inherit;font-size:.92rem;color:#0f6b54;font-weight:900;text-decoration:none}.project-link{background:#fff9f1b8;border:1px solid rgba(15,107,84,.24)}.project-detail-button{cursor:pointer;background:#0f6b54;border:1px solid #0f6b54;color:#fff9f1}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#1d2f287a}.project-modal{position:relative;width:min(100%,940px);max-height:min(760px,88vh);overflow:auto;padding:clamp(26px,5vw,42px);background:#fff9f1;border:1px solid rgba(55,82,70,.14);border-radius:8px;box-shadow:0 28px 90px #17221d57}.project-modal h2{padding-right:40px}.modal-copy{display:grid;gap:14px;margin-bottom:22px}.modal-copy p{margin:0;color:#4f5148;font-size:1.02rem;line-height:1.7}.modal-architecture{margin:0 0 22px;padding:14px;background:#fff9f1e6;border:1px solid rgba(55,82,70,.12);border-radius:8px}.modal-architecture img{display:block;width:100%;height:auto;border-radius:6px}.modal-architecture figcaption{margin-top:10px;color:#5d625b;font-size:.92rem;text-align:center}.modal-close{position:absolute;top:18px;right:18px;display:grid;width:36px;height:36px;place-items:center;cursor:pointer;background:#0f6b541a;border:1px solid rgba(15,107,84,.2);border-radius:8px;color:#0f6b54;font:inherit;font-size:1.2rem;font-weight:900}.skills-section{display:grid;gap:36px;background:#fff9f1bd}.skills-intro{display:grid;place-items:center;text-align:center}.skills-intro h2{margin:0}.skill-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1040px;gap:12px;padding:0;margin:0 auto;list-style:none}.skill-list li{padding:14px 18px;border-radius:8px;line-height:1.35}.deploy{display:grid;grid-template-columns:minmax(0,.95fr) minmax(300px,1.05fr);gap:clamp(28px,6vw,80px);background:#f4dccb}.deploy-steps{display:grid;gap:14px;margin:0;padding-left:22px}.deploy-steps li{padding:18px 20px;background:#fff9f1c7;border:1px solid rgba(126,75,38,.14);border-radius:8px;color:#34423d;font-weight:750}.experience{background:#f4dccb}.experience-list{display:grid;gap:18px}.experience-card{padding:26px;background:#fff9f1cc;border:1px solid rgba(126,75,38,.14);border-radius:8px;box-shadow:0 16px 48px #2f251414}.experience-header{display:flex;justify-content:space-between;gap:18px;align-items:start;margin-bottom:16px}.experience-header h3{margin-bottom:6px}.experience-company{margin:0;color:#0f6b54;font-weight:800}.experience-date{display:inline-flex;align-items:center;min-height:32px;padding:6px 10px;border-radius:999px;background:#fff4dee6;border:1px solid rgba(31,111,91,.18);color:#1b5d4c;font-size:.9rem;font-weight:800;white-space:nowrap}.experience-points{margin:0;padding-left:20px;color:#56564d;line-height:1.7}.experience-points li+li{margin-top:8px}.footer{display:flex;justify-content:space-between;gap:18px;padding:28px clamp(20px,5vw,72px);background:#1d2f28;color:#fff9f1}.footer p{margin:0}.footer a{color:#f3c96e}@media(max-width:900px){.topbar,.section-heading,.experience-header,.footer{align-items:flex-start;flex-direction:column}.hero,.about,.deploy,.project-grid{grid-template-columns:1fr}.skill-list{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{min-height:auto}}@media(max-width:560px){.nav-links{width:100%;justify-content:space-between;gap:10px;font-size:.92rem}h1{font-size:2.75rem}.skill-list{grid-template-columns:1fr}}
