:root{color:#151515;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;--ink:#151515;--muted:#60635f;--subtle:#858a84;--line:#d9ddd8;--accent:#2f5c67;--surface:#fff;--surface-soft:#eef2ef;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f7f8f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{-webkit-text-size-adjust:100%;overscroll-behavior-y:none;background:#f7f8f7;min-height:100%}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f7f8f7;min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}.app-shell{isolation:isolate;background:#f7f8f7;width:min(1120px,100% - 40px);margin:0 auto}.site-header{z-index:10;border-bottom:1px solid var(--line);background:#f7f8f7;justify-content:space-between;align-items:center;gap:20px;margin:0 0 22px;padding:18px 0 14px;display:flex;position:sticky;top:0}.brand{letter-spacing:.02em;white-space:nowrap;flex-shrink:0;font-size:14px;font-weight:700}.nav-links{gap:6px;display:flex}.nav-links a{color:var(--muted);padding:8px 0 8px 16px;font-size:13px;font-weight:600}.nav-links a:hover,.nav-links a.is-active{color:var(--ink)}.nav-links a.is-active:after{content:"";background:var(--ink);border-radius:2px;width:100%;height:2px;margin-top:4px;display:block}.nav-icon{width:32px;height:32px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;margin-left:6px;transition:color .18s,background .18s;display:inline-flex}.nav-icon:hover{color:var(--ink);background:var(--surface-soft)}:where(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.section{padding:84px 0}.hero{grid-template-columns:minmax(0,1fr) minmax(320px,390px);align-items:center;gap:clamp(34px,6vw,72px);min-height:calc(100vh - 112px);display:grid}.eyebrow{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0 0 16px;font-size:12px;font-weight:700}h1,h2,p{margin-top:0}h1{letter-spacing:0;max-width:620px;margin-bottom:20px;font-size:clamp(34px,4.5vw,54px);line-height:1.08}h2{letter-spacing:0;max-width:760px;margin-bottom:20px;font-size:clamp(26px,3.8vw,42px);line-height:1.1}.lead,.project-description{max-width:680px;color:var(--muted);font-size:15.5px;line-height:1.95}.hero-meta{border:1px solid var(--line);background:var(--surface);border-radius:10px;gap:12px;max-width:560px;margin:28px 0 0;padding:18px 20px;display:grid}.hero-meta>div{grid-template-columns:132px 1fr;align-items:baseline;gap:12px;display:grid}.hero-meta dt{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.hero-meta dd{color:var(--ink);margin:0;font-size:14px;line-height:1.6}.hero-meta dd strong{font-size:18px;font-weight:700}.hero-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.section-lead{max-width:680px;color:var(--muted);margin:0 0 28px;font-size:15px;line-height:1.85}.button,.small-button{border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:700;transition:transform .18s,background .18s,color .18s;display:inline-flex}.button{padding:0 18px}.small-button{border:1px solid var(--line);min-height:40px;padding:0 14px}.button:hover,.small-button:hover{transform:translateY(-2px)}.primary{color:#fff;background:var(--ink)}.ghost{border:1px solid var(--line);color:var(--ink);background:0 0}.profile-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:12px;box-shadow:0 24px 70px #16201a14}.photo-frame{aspect-ratio:4/5;border:1px solid var(--line);background:var(--surface-soft);width:100%;color:var(--subtle);border-radius:8px;place-items:center;font-weight:700;display:grid;overflow:hidden}.photo-frame img{object-fit:cover;object-position:52% 28%;width:100%;height:100%}.profile-info{gap:8px;padding:18px 4px 4px;display:grid}.profile-label{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin-bottom:0;font-size:11px;font-weight:700}.profile-info h2{margin-bottom:0;font-size:24px;line-height:1.2}.profile-info a{color:var(--muted);overflow-wrap:anywhere;font-size:14px}.profile-info p:last-child{color:var(--accent);margin:0;font-size:13px;font-weight:700;line-height:1.6}.github-section{border-top:1px solid var(--line);grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);align-items:center;gap:34px;padding-top:72px;display:grid}.github-copy h2{margin-bottom:16px;font-size:clamp(26px,3.4vw,38px)}.github-copy p:not(.eyebrow){max-width:520px;color:var(--muted);margin:0;font-size:15px;line-height:1.95}.github-link-button{border-color:var(--ink);color:#fff;background:var(--ink);width:fit-content;margin-top:28px}.github-visual{border:1px solid var(--line);background:#0d1117;border-radius:8px;margin:0;overflow:hidden;box-shadow:0 22px 60px #16201a1a}.github-visual img{object-fit:contain;width:100%;height:auto;display:block}.github-visual figcaption{color:#ffffffb8;border-top:1px solid #ffffff1f;padding:12px 14px;font-size:12px;line-height:1.5}.strengths-section{border-top:1px solid var(--line);padding-top:72px}.strength-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin-top:8px;display:grid}.strength-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:12px;padding:26px 24px;transition:transform .22s,box-shadow .22s,border-color .22s;display:grid;position:relative;box-shadow:0 18px 50px #16201a0d}.strength-card:hover{border-color:#16201a2e;transform:translateY(-3px);box-shadow:0 26px 60px #16201a17}.strength-card header{align-items:center;gap:10px;display:flex}.strength-icon{background:var(--surface-soft);width:36px;height:36px;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.strength-label{color:var(--subtle);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:700}.strength-card h3{color:var(--ink);margin:0;font-size:18px;font-weight:700;line-height:1.45}.strength-card p{color:var(--muted);margin:0;font-size:14px;line-height:1.85}.strength-proof{background:var(--surface-soft);border-radius:8px;align-items:center;gap:6px;margin-top:6px;padding:8px 12px;font-weight:700;display:inline-flex;color:var(--ink)!important;font-size:12.5px!important;line-height:1.5!important}.strength-proof span{color:var(--accent)}.skills-section{border-top:1px solid var(--line);padding-top:72px}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:8px;display:grid}.skill-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;gap:14px;padding:20px;display:grid}.skill-card header{align-items:center;gap:10px;display:flex}.skill-card h3{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:14px;font-weight:700}.skill-icon{background:var(--surface-soft);width:32px;height:32px;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.skill-card ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.skill-card li{background:var(--surface-soft);color:var(--ink);border-radius:6px;padding:6px 10px;font-size:13px;font-weight:600}.project-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:clamp(20px,4vw,36px);box-shadow:0 22px 60px #16201a0f}.project-card+.project-card{margin-top:24px}.project-top{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.project-type{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:700;display:block}.project-reflection{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;gap:18px;margin-top:30px;padding:clamp(18px,3vw,28px);display:grid}.reflection-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:18px;padding-bottom:16px;display:flex}.reflection-heading span{font-weight:700}.reflection-heading p,.reflection-item p{color:var(--muted);margin:0;font-size:14px;line-height:1.85}.reflection-list{gap:14px;display:grid}.reflection-item{border-left:2px solid var(--ink);padding-left:16px}.reflection-item h3{margin:0;font-size:16px;line-height:1.4}.project-flow{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:20px;margin-top:30px;padding:18px 0;display:flex}.project-flow span{font-weight:700}.project-flow p{color:var(--muted);margin:0;font-size:14px;line-height:1.7}.project-card.featured h3{margin:0;font-size:clamp(24px,3vw,32px);line-height:1.15}.project-card:not(.featured) h3{margin:0;font-size:clamp(20px,2.4vw,26px);line-height:1.2}.project-facts{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;gap:12px;margin:24px 0 0;padding:18px 20px;display:grid}.project-facts>div{grid-template-columns:120px 1fr;align-items:baseline;gap:12px;display:grid}.project-facts dt{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-facts dd{color:var(--ink);margin:0;font-size:14px;line-height:1.7}.stack-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.stack-list li{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.screenshot-tabs{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;flex-wrap:wrap;gap:6px;margin-top:20px;padding:6px;display:flex}.screenshot-tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:700;transition:background .16s,color .16s}.screenshot-tab:hover{color:var(--ink)}.screenshot-tab.is-active{background:var(--ink);color:#fff}.screenshot-panel{margin:16px 0 0}.screenshot-panel .screenshot-button{border:1px solid var(--line);background:var(--surface-soft);cursor:zoom-in;border-radius:10px;width:100%;padding:0;display:block;overflow:hidden}.screenshot-panel .screenshot-button img{object-fit:contain;background:var(--surface-soft);width:100%;height:auto;max-height:540px;transition:filter .18s;display:block}.screenshot-panel .screenshot-button:hover img{filter:contrast(1.04)}.screenshot-panel figcaption{gap:6px;padding:14px 4px 0;display:grid}.screenshot-panel strong{font-size:15px}.screenshot-panel span{color:var(--muted);font-size:14px;line-height:1.6}.project-highlights{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;gap:16px;margin-top:28px;padding:22px;display:grid}.highlight-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.highlight-list li{border-left:2px solid var(--ink);gap:6px;padding-left:14px;display:grid}.highlight-list strong{font-size:14px}.highlight-list span{color:var(--muted);font-size:14px;line-height:1.8}.screenshot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.screenshot-card{border:1px solid var(--line);background:var(--surface-soft);border-radius:8px;margin:0;overflow:hidden}.screenshot-button{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.screenshot-button img{aspect-ratio:16/9;border-bottom:1px solid var(--line);object-fit:cover;object-position:top left;width:100%;transition:filter .18s,transform .18s;display:block}.screenshot-button:hover img{filter:contrast(1.04);transform:scale(1.01)}.screenshot-card figcaption{gap:6px;padding:16px;display:grid}.screenshot-card strong{font-size:15px}.screenshot-card span{color:var(--muted);font-size:14px;line-height:1.5}.image-modal{z-index:30;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-backdrop{cursor:zoom-out;background:#000000b8;border:0;position:absolute;inset:0}.modal-content{z-index:1;border:1px solid var(--line);background:#fff;border-radius:8px;width:min(1120px,100%);max-height:min(86vh,820px);position:relative;overflow:auto}.modal-content img{width:100%;height:auto;display:block}.modal-content p{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px 14px;margin:0;padding:14px 16px;display:flex}.modal-content span{color:var(--muted)}.modal-close{z-index:2;border:1px solid var(--line);width:44px;height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:50%;place-items:center;margin:12px 12px -56px auto;display:grid;position:sticky;top:12px;left:calc(100% - 56px)}.tools-section h2{margin-bottom:32px}.tool-card{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:clamp(20px,4vw,36px);box-shadow:0 22px 60px #16201a0f}.tool-header{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.tool-type{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:700;display:block}.tool-card h3{margin:0;font-size:clamp(20px,2.4vw,26px);line-height:1.2}.tool-description{max-width:680px;color:var(--muted);margin:16px 0 24px;font-size:15.5px;line-height:1.95}.tool-tagline{color:var(--muted);margin:12px 0 0;font-size:14px;line-height:1.7}.tool-metrics{border:1px solid var(--line);background:linear-gradient(180deg, var(--surface) 0%, var(--surface-soft) 100%);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:28px 0 36px;padding:20px 24px;display:grid}.tool-metrics>div{gap:6px;display:grid}.tool-metrics dt{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.tool-metrics dd{color:var(--ink);margin:0;font-size:14px;line-height:1.5}.tool-metrics dd strong{margin-right:4px;font-size:22px;font-weight:700}.tool-showcase{gap:36px;margin-bottom:36px;display:grid}.tool-showcase-row{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:28px;display:grid}.tool-showcase-row.is-reversed{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.tool-showcase-row.is-reversed .tool-showcase-visual{order:2}.tool-showcase-row.is-reversed .tool-showcase-copy{order:1}.tool-showcase-visual{border:1px solid var(--line);background:var(--surface-soft);border-radius:12px;margin:0;padding:14px;overflow:hidden}.tool-showcase-visual img{background:var(--surface);border-radius:6px;width:100%;height:auto;display:block}.tool-showcase-copy{gap:10px;display:grid}.tool-showcase-label{border:1px solid var(--line);background:var(--surface-soft);width:fit-content;color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.tool-showcase-copy h4{margin:0;font-size:clamp(17px,1.7vw,20px);line-height:1.4}.tool-showcase-copy p{color:var(--muted);margin:0;font-size:14.5px;line-height:1.9}.tool-highlights{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;gap:16px;margin-bottom:28px;padding:22px;display:grid}.tool-facts{border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;gap:12px;padding:18px 20px;display:grid}.tool-facts>div{grid-template-columns:120px 1fr;align-items:flex-start;gap:12px;display:grid}.tool-facts dt{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.tool-facts dd{color:var(--ink);margin:0;font-size:14px;line-height:1.7}.tool-features{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tool-features li{color:var(--ink);font-size:14px;line-height:1.6}.tool-features li:before{content:"→ ";color:var(--subtle);margin-right:6px}.contact-section{border-top:1px solid var(--line);text-align:center}.contact-section h2{margin-inline:auto}.contact-section .section-lead{margin-inline:auto;margin-bottom:24px}.contact-email-row{border:1px solid var(--line);background:var(--surface);border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin:0 auto 24px;padding:10px 14px;display:inline-flex}.contact-email{color:var(--ink);overflow-wrap:anywhere;font-size:16px;font-weight:700}.copy-button{border:1px solid var(--line);background:var(--surface-soft);color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;transition:background .16s,color .16s;display:inline-flex}.copy-button:hover{background:var(--ink);color:#fff}.contact-links{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.site-footer{border-top:1px solid var(--line);color:var(--subtle);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-top:32px;padding:24px 0 32px;font-size:12px;display:flex}.site-footer .footer-meta{align-items:center;gap:6px;display:inline-flex}@media (width<=900px){.nav-links{gap:2px}.nav-links a{padding:8px 6px 8px 10px;font-size:12px}}@media (width<=720px){.nav-links a{letter-spacing:0;padding:8px 4px 8px 8px;font-size:11.5px}.nav-icon{margin-left:2px}}@media (width<=760px){.app-shell{width:min(100% - 24px,620px)}.site-header{gap:12px;margin:0 0 16px;padding:14px 0 10px;top:0}.nav-links{gap:4px}.nav-links a{padding:8px 6px;font-size:12px}.section{padding:56px 0}.hero{grid-template-columns:1fr;gap:32px;min-height:auto;padding-top:24px}.hero-copy{order:1}.profile-card{order:2;width:100%;max-width:360px;margin:0 auto}.photo-frame{aspect-ratio:1}.github-section{grid-template-columns:1fr;gap:22px;padding-top:56px}.github-copy p:not(.eyebrow){max-width:none}.lead,.project-description{font-size:15px;line-height:1.85}.project-top,.project-flow,.reflection-heading{flex-direction:column;align-items:flex-start}.hero-actions{gap:10px;margin-top:24px}.button,.small-button{width:100%}.project-top .small-button,.github-link-button{align-self:flex-start;width:auto}.project-flow{gap:6px}.modal-content{max-height:88vh}.hero-meta{padding:14px 16px}.hero-meta>div{grid-template-columns:1fr;gap:4px}.skills-section{padding-top:56px}.project-facts>div{grid-template-columns:1fr;gap:4px}.screenshot-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.screenshot-tab{flex-shrink:0;min-height:40px;padding:10px 14px}.copy-button{min-height:36px;padding:8px 14px}.screenshot-panel .screenshot-button img{max-height:420px}}@media (width<=480px){.app-shell{width:min(100% - 20px,440px)}.brand{font-size:14px}.nav-links a:not(.nav-icon){display:none}.nav-icon{margin-left:0}.section{padding:48px 0}h1{font-size:32px;line-height:1.12}h2{font-size:26px;line-height:1.15}.profile-info h2{font-size:20px}.project-card{border-radius:8px;padding:18px}.project-card+.project-card{margin-top:16px}.project-reflection{margin-top:24px;padding:16px}.reflection-item{padding-left:12px}.screenshot-grid{grid-template-columns:1fr;gap:12px}.screenshot-button img{aspect-ratio:auto;object-fit:contain;background:var(--surface-soft);max-height:320px}.screenshot-card figcaption{padding:12px 14px}.github-visual img{aspect-ratio:auto;object-fit:contain;height:auto}.image-modal{padding:12px}.modal-content{border-radius:6px;max-height:92vh}.modal-close{width:40px;height:40px;margin:8px 8px -48px auto;top:8px;left:calc(100% - 48px)}.modal-content p{flex-direction:column;gap:4px;padding:12px 14px;font-size:14px}.contact-section h2{overflow-wrap:anywhere;font-size:22px}.contact-email-row{border-radius:14px;flex-direction:column;width:100%}.screenshot-panel .screenshot-button img{max-height:360px}.project-highlights{padding:16px}.tool-card{border-radius:8px;padding:18px}.tool-header{flex-direction:column;align-items:flex-start}.tool-facts>div{grid-template-columns:1fr}.tool-description{font-size:14px}.tool-metrics{grid-template-columns:1fr;gap:14px;margin:20px 0 28px;padding:16px 18px}.tool-metrics dd strong{font-size:20px}.tool-showcase{gap:28px;margin-bottom:28px}.tool-showcase-row,.tool-showcase-row.is-reversed{grid-template-columns:1fr;gap:16px}.tool-showcase-row.is-reversed .tool-showcase-visual,.tool-showcase-row.is-reversed .tool-showcase-copy{order:0}.tool-showcase-visual{padding:10px}.tool-showcase-copy p{font-size:14px}.tool-highlights{padding:16px}.strengths-section{padding-top:56px}.strength-grid{gap:14px}.strength-card{border-radius:12px;padding:24px 20px}.strength-card h3{font-size:17px;line-height:1.5}.strength-proof{overflow-wrap:anywhere}.strength-card:hover{transform:none}}@media (width<=360px){h1{font-size:28px}h2{font-size:22px}.strength-card{padding:22px 18px}.contact-email{font-size:14px}}
