@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{color-scheme:dark;--bg:#101112;--surface:#181a1c;--surface-raised:#202326;--text:#f0f1ec;--muted:#a4a8a9;--line:#303334;--accent:#d0f86c;--mono:'IBM Plex Mono',monospace;--heading:'Space Grotesk',Arial,sans-serif;--body:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--bg);color:var(--text);font:1rem/1.65 var(--body);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}::selection{background:var(--accent);color:var(--bg)}.wrap{width:min(1240px,calc(100% - 112px));margin-inline:auto}.header{display:flex;align-items:center;justify-content:space-between;min-height:104px;border-bottom:1px solid var(--line);gap:24px}.brand{font-family:var(--heading);font-size:2rem;letter-spacing:-2px;font-weight:700;line-height:1}.brand-dot{color:var(--accent)}.brand-caption{font: .8rem var(--mono);letter-spacing:0;color:var(--muted);margin-left:20px}.header nav{display:flex;gap:32px;font-size:.9rem}.header-contact{font-size:.9rem;border-bottom:1px solid #71756e;padding-block:6px}.header-contact span{padding-left:20px}.hero{padding-top:46px}.hero-top,.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{font:500 .75rem/1.6 var(--mono);letter-spacing:.1em;color:var(--muted)}.availability{display:flex;align-items:center;gap:10px;font-size:.8rem;color:#c2c5c0}.availability>span:first-child{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:75px;align-items:center;padding:52px 0 70px}h1,h2,h3,p{margin-top:0}h1{font:500 clamp(3.5rem,6.2vw,6rem)/1.05 var(--heading);letter-spacing:-.065em;margin-bottom:28px}h1 .accent{display:block}.accent{color:var(--accent)}.hero-copy>p{color:var(--muted);font-size:1.05rem;max-width:490px;line-height:1.8;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:54px;padding:13px 23px;border-radius:6px;font-weight:600;font-size:.95rem;border:1px solid var(--line);transition:background .2s,transform .2s}.button.primary{background:var(--accent);color:#18200f;border-color:var(--accent)}.button:hover{transform:translateY(-2px);background:#e0ffa0;color:#18200f}.text-link{font-size:.9rem;font-weight:500;display:inline-flex;align-items:center;gap:12px}.developer-card{border:1px solid #3a3e35;border-radius:12px;background:linear-gradient(135deg,#20241c 0%,#181b18 35%,#17191a 100%);transform:rotate(2deg);box-shadow:0 25px 90px #0003;overflow:hidden;margin-top:22px}.code-tab{display:flex;align-items:center;gap:12px;border-bottom:1px solid #33392c;padding:16px 23px;font: .8rem var(--mono);color:#c0c5b8}.file-icon{color:var(--accent);font-weight:500}.code-dot{width:7px;height:7px;background:#64724c;border-radius:50%;margin-left:auto}.code-body{display:flex;gap:20px;padding:27px 22px 30px;overflow:auto;font:.82rem/2.05 var(--mono)}.line-numbers{color:#646b61;user-select:none}.code-body pre{font:inherit;margin:0;white-space:pre}.code-key{color:#b5c3a1}.code-value{color:var(--accent)}.code-bool{color:#e7ba90}.card-foot{border-top:1px solid #33392c;padding:13px 22px;display:flex;justify-content:space-between;font:.65rem var(--mono);letter-spacing:.075em;color:#a2aa98}.hero-bottom{border-top:1px solid var(--line);padding:22px 0 27px;color:var(--muted);font-size:.8rem}.hero-bottom>div{display:flex;gap:25px}.scroll-cue{font: .7rem var(--mono);letter-spacing:.06em}.scroll-cue span{padding-left:20px}.section{padding-top:100px;padding-bottom:100px}.projects-section,.journey-section{background:#161819;border-block:1px solid #242728}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:40px}h2{font:500 clamp(2.2rem,3.3vw,3.35rem)/1.15 var(--heading);letter-spacing:-.05em;margin:15px 0 0}.section-heading>p{color:var(--muted);font-size:.9rem;margin-bottom:0}.section-heading>.text-link{margin-bottom:4px}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.project{background:var(--bg);border:1px solid #323637;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,transform .2s;min-width:0}.project:hover{border-color:#657441;transform:translateY(-3px)}.project.featured{grid-column:1/-1;display:grid;grid-template-columns:1.17fr 1fr}.project-image-button{border:0;padding:28px;background:#18281f;display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;width:100%;aspect-ratio:1.8}.project.featured .project-image-button{aspect-ratio:auto;min-height:360px}.project[data-accent=blue] .project-image-button{background:#1a2635}.project[data-accent=purple] .project-image-button{background:#252134}.project-image-button img{display:block;width:100%;max-height:310px;object-fit:contain;box-shadow:0 16px 30px #0004;border-radius:5px;transition:transform .4s}.project-image-button:hover img{transform:scale(1.025)}.project-image-button.image-missing{font:600 2rem var(--heading);color:var(--accent)}.project-body{padding:30px 32px;display:flex;flex-direction:column;flex:1;min-width:0}.project-meta{display:flex;justify-content:space-between;gap:12px;font: .72rem/1.7 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.featured-label{color:var(--accent);font:.7rem var(--mono);margin-bottom:16px;display:flex;align-items:center;gap:8px}.featured-label:before{content:'✳';font-size:1.1rem}.project h3{font:500 2rem/1.15 var(--heading);letter-spacing:-.04em;margin:14px 0}.project.featured h3{font-size:2.5rem}.project p{color:var(--muted);font-size:.97rem;line-height:1.7;margin-bottom:22px}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.tag{font:.72rem/1.6 var(--mono);border:1px solid #343938;border-radius:4px;padding:4px 9px;color:#c2c7c0}.project-links{border-top:1px solid var(--line);padding-top:21px;margin-top:27px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.project-links button{padding:0;border:0;background:none;color:var(--text);font-size:.9rem;font-weight:550}.project-links button:hover{color:var(--accent)}.project-links>a{font-size:.85rem;color:var(--muted)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px}.about-grid h2{font-size:clamp(2.4rem,3.6vw,3.5rem);line-height:1.13}.muted{color:var(--muted)}.about-copy{padding-top:35px}.about-copy p{color:#c0c3c0;font-size:1.07rem;line-height:1.85;margin-bottom:22px}.about-copy>.text-link{margin-top:10px}.skills-grid{display:grid;grid-template-columns:1.3fr .9fr 1.2fr;gap:40px;margin-top:70px;border-top:1px solid var(--line);padding-top:33px}.skill h3{font:500 1rem var(--heading);margin-bottom:18px}.skill p{font-size:.9rem;color:var(--muted);line-height:2;margin-bottom:0}.journey-grid{display:grid;grid-template-columns:1fr 1fr;gap:85px}.column-label{font:500 .72rem var(--mono);letter-spacing:.1em;color:var(--muted);margin:10px 0 30px}.journey-item{padding:0 0 28px 23px;border-left:1px solid #4a5142;position:relative}.journey-item:before{content:'';position:absolute;left:-4px;top:5px;width:7px;height:7px;background:#a4ad91;border-radius:50%}.journey-item:last-child{padding-bottom:0}.journey-item h4,.cert h4{font:500 1.15rem/1.4 var(--heading);letter-spacing:-.02em;margin:8px 0}.journey-item p{font-size:.9rem;color:var(--muted);margin:10px 0 0;line-height:1.85}.small-label{font:.72rem/1.7 var(--mono);color:var(--muted)}.journey-role{font-size:.9rem}.cert{padding:18px 0;border-top:1px solid var(--line)}.cert:first-child{padding-top:0;border-top:0}.cert h4{margin:0 0 8px}.cert-meta{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:.8rem}.contact{padding-block:100px 70px}.contact h2{font-size:clamp(2.8rem,5vw,4.8rem);margin-top:23px;line-height:1.12}.contact-bottom{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-top:35px}.contact-bottom p{color:var(--muted);font-size:1rem;margin:0}.contact-links{display:flex;gap:30px;margin-top:34px;font-size:.9rem}.contact-links>a:first-child{margin-right:auto;overflow-wrap:anywhere}.footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-block:27px 35px;gap:24px;color:var(--muted);font-size:.8rem}.footer .brand{color:var(--text);font-size:1.7rem}.skip-link{position:fixed;top:-100px;left:20px;padding:12px 20px;background:var(--accent);color:#101112;z-index:100}.skip-link:focus{top:12px}dialog{background:var(--bg);color:var(--text);border:1px solid #49513e;border-radius:16px;width:min(780px,calc(100% - 32px));max-height:90dvh;padding:0;overscroll-behavior:contain}dialog::backdrop{background:#000c;backdrop-filter:blur(7px)}.dialog-close{position:sticky;top:16px;margin:16px 16px -56px auto;display:block;z-index:2;width:40px;height:40px;border:1px solid #565c50;border-radius:50%;background:#101112eb;color:var(--text)}.dialog-image{width:100%;height:300px;object-fit:contain;background:#202820;padding:30px 48px}.dialog-copy{padding:30px 36px 36px}.dialog-copy h2{margin:8px 0 20px}.dialog-copy>p,.dialog-copy li{color:#b7bcb6}.dialog-copy h3{font:500 1.2rem var(--heading);margin:30px 0 15px}.dialog-copy ul{padding-left:20px}.dialog-copy li{margin-bottom:10px}.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.image-note{font-size:.8rem;font-style:italic}.noscript{padding:25px;background:var(--surface)}.error-state{padding:30px;border:1px solid var(--line);grid-column:1/-1}.error-state a{color:var(--accent)}
@media(min-width:1600px){.hero-grid{padding-block:70px 85px}.hero{padding-top:55px}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}.hero-grid{gap:35px;grid-template-columns:1.1fr 1fr}h1{font-size:4.4rem}.code-body{font-size:.7rem;gap:15px;padding-inline:18px}.hero-top{align-items:start}.hero-top .eyebrow{max-width:300px}.project.featured{grid-template-columns:1fr 1fr}.project-body{padding:26px}.about-grid,.journey-grid{gap:45px}.header nav{gap:23px}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.header{min-height:85px}.brand-caption{display:none}.header-contact{display:none}.header nav{gap:22px}.hero-top{flex-direction:column;gap:12px}.hero-top .eyebrow{max-width:none}.hero-grid{grid-template-columns:1fr;gap:38px;padding:36px 0 50px}.hero-copy>p{max-width:560px}h1{font-size:clamp(3.6rem,10vw,5.5rem)}.developer-card{transform:rotate(0);max-width:540px;width:100%;margin:0}.code-body{font-size:.85rem}.hero-bottom{flex-wrap:wrap;gap:18px}.scroll-cue{display:none}.section{padding-block:70px}.section-heading{align-items:start;gap:20px}.section-heading>.text-link{white-space:nowrap;margin-top:12px}.project.featured{display:flex}.project.featured .project-image-button{aspect-ratio:1.8;min-height:0}.projects-grid{gap:20px}.project-body{padding:24px}.project-image-button{padding:20px}.project h3{font-size:1.7rem}.project-meta{font-size:.65rem}.about-grid,.journey-grid{grid-template-columns:1fr;gap:35px}.about-copy{padding-top:0}.about-grid h2 br:nth-child(2){display:none}.skills-grid{gap:25px;grid-template-columns:1fr 1fr}.skills-grid .skill:first-child{grid-column:1/-1}.section-heading>p{display:none}.contact-bottom{align-items:start;flex-direction:column}.contact-links{flex-wrap:wrap;gap:20px}.contact-links>a:first-child{width:100%}.footer{flex-wrap:wrap}.footer .brand{margin-right:auto}.footer>a:last-child{display:none}.project-meta{font-size:.75rem}}
@media(max-width:520px){.projects-grid{grid-template-columns:1fr}.project.featured{grid-column:auto}.hero{padding-top:28px}.hero-actions{gap:24px;flex-wrap:wrap}.header nav{gap:18px;font-size:.85rem}.section-heading{flex-direction:column}.section-heading>.text-link{margin:0}.section-heading{margin-bottom:30px}.hero-bottom{font-size:.75rem}.hero-bottom>div{gap:20px}.skills-grid{grid-template-columns:1fr;gap:25px;margin-top:40px}.skills-grid .skill:first-child{grid-column:auto}.contact h2{font-size:2.75rem}.code-body{font-size:.74rem;gap:15px;padding:22px 15px}.card-foot{font-size:.65rem;padding:13px 15px}.dialog-copy{padding:24px}.dialog-image{height:230px;padding:22px}.cert-meta{flex-wrap:wrap;gap:4px}.contact-bottom p br{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
