:root{--color-text-base: #2a2a2a;--color-heading: #2a2a2a;--color-bg-body: #ffffff;--color-bg-card: #f9fafb;--color-bg-card-strong: #ffffff;--color-bg-muted: #f3f4f6;--color-border: #e5e7eb;--color-primary: #3b82f6;--color-secondary: #6366f1;--color-muted: #4b5563;--color-focus: rgba(59, 130, 246, .35);--color-primary-shadow: rgb(59 130 246 / .3);--shadow-card: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-hover: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1)}:root.dark{color-scheme:dark;--color-text-base: #f4f1df;--color-heading: #DAA112;--color-bg-body: #10383A;--color-bg-card: #666E51;--color-bg-card-strong: #10383A;--color-bg-muted: #809276;--color-border: #768886;--color-primary: #DAA112;--color-secondary: #809276;--color-muted: #d7ded6;--color-focus: rgba(218, 161, 18, .38);--color-primary-shadow: rgb(218 161 18 / .26)}html{color-scheme:light;scroll-behavior:smooth}body{background:var(--color-bg-body);color:var(--color-text-base);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}img,svg{display:block}svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.hidden{display:none!important}.vcard-shell{min-height:100vh;background:var(--color-bg-body);transition:background-color .3s ease}.theme-control{position:fixed;top:1rem;right:1rem;z-index:50}.icon-button{display:grid;width:2.5rem;height:2.5rem;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--color-text-base);cursor:pointer;transition:background-color .2s ease,color .2s ease}.icon-button:hover{background:#e5e7eb}.dark .icon-button:hover{background:var(--color-bg-card)}.icon-button:focus-visible,.social-button:focus-visible,.notes-link:focus-visible,.project-action:focus-visible,.primary-button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;box-shadow:0 0 0 4px var(--color-focus)}.theme-icon{width:1.5rem;height:1.5rem}.page-stack{padding-bottom:6rem}.page-stack>*+*{margin-top:6rem}.hero{position:relative;display:flex;min-height:100vh;align-items:center;justify-content:center;overflow:hidden;padding:4rem 1rem;text-align:center}.hero-glow{position:absolute;top:50%;left:50%;z-index:0;width:min(500px,80vw);height:min(500px,80vw);border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 80%);filter:blur(120px);transform:translate(-50%,-50%);pointer-events:none}.hero-content{position:relative;z-index:1;animation:fade-in-up .5s ease-out forwards}.profile-image{width:8rem;height:8rem;margin:0 auto 1.5rem;overflow:hidden;border:4px solid #ffffff;border-radius:999px;box-shadow:var(--shadow-hover)}.dark .profile-image{border-color:var(--color-bg-card)}.profile-image img{width:100%;height:100%;object-fit:cover}h1,h2,h3{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;letter-spacing:0}.dark strong,.dark b{color:var(--color-heading)}h1{margin:0 0 1rem;background:linear-gradient(90deg,var(--color-heading),var(--color-secondary));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:clamp(2.25rem,7vw,3.75rem);line-height:1}.typing-line{min-height:2rem;margin-bottom:1.25rem;color:#4b5563;font-size:clamp(1.25rem,4vw,1.5rem)}.dark .typing-line{color:var(--color-muted)}.typing-caret{animation:blink 1s infinite}.hero-copy{max-width:42rem;margin:0 auto 2rem;color:var(--color-muted);font-size:1rem}.social-links{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.notes-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;color:var(--color-primary);font-weight:600;text-decoration:none;text-underline-offset:.2em}.notes-link:hover{text-decoration:underline}.notes-link span{transition:transform .2s ease}.notes-link:hover span{transform:translate(.2rem)}.social-button{position:relative;display:grid;width:3rem;height:3rem;place-items:center;border:0;border-radius:999px;background:#fff;color:#374151;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease,color .3s ease}.dark .social-button{background:var(--color-bg-card);color:var(--color-text-base)}.social-button:hover{color:var(--color-primary);box-shadow:var(--shadow-card);transform:scale(1.1)}.social-button svg,.project-action svg,.primary-button svg,.email-link svg,.tech-icon svg{width:1.5rem;height:1.5rem}.copy-feedback{position:absolute;top:calc(100% + .5rem);left:50%;padding:.25rem .5rem;border-radius:.25rem;background:var(--color-text-base);color:var(--color-bg-body);font-size:.75rem;opacity:0;transform:translate(-50%);pointer-events:none}.is-copied .copy-feedback{animation:feedback 1.2s ease}.section{width:min(100% - 2rem,56rem);margin-right:auto;margin-left:auto;padding:4rem 0}.section-wide{width:min(100% - 2rem,72rem)}.section-narrow,.contact-section{width:min(100% - 2rem,48rem)}.section-timeline{width:min(100% - 2rem,60rem);text-align:left}.section h2{margin:0 0 3rem;color:var(--color-heading);font-size:1.875rem;line-height:2.25rem;text-align:center}.stack-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.tech-card{position:relative;display:flex;align-items:flex-start;gap:.75rem;overflow:hidden;min-width:0;padding:.875rem;border:1px solid var(--color-border);border-radius:.75rem;background:#fff;color:#374151;transition:border-color .3s ease,box-shadow .3s ease}.dark .tech-card{background:var(--color-bg-card);color:var(--color-text-base)}.tech-card:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--color-primary),transparent 95%);opacity:0;transition:opacity .3s ease}.tech-card:hover{border-color:var(--color-primary);box-shadow:0 0 20px var(--color-primary-shadow)}.dark .tech-card:hover{box-shadow:0 0 20px var(--color-primary-shadow)}.tech-card:hover:before{opacity:1}.tech-icon,.tech-copy{position:relative;z-index:1}.tech-icon{display:grid;width:2.5rem;height:2.5rem;flex:0 0 auto;place-items:center;border-radius:.5rem;background:#f3f4f6;color:var(--color-primary);transition:transform .3s ease}.dark .tech-icon{background:var(--color-bg-card-strong)}.tech-card:hover .tech-icon{transform:scale(1.1)}.tech-copy{min-width:0}.tech-copy h3{margin:0 0 .25rem;color:var(--color-heading);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.95rem;font-weight:800;line-height:1.25}.tech-copy p{margin:0;color:var(--color-muted);font-size:.82rem;line-height:1.35}.timeline{position:relative;display:grid;gap:3rem;margin-left:1.5rem;border-left:2px solid var(--color-border);text-align:left}.timeline-item{position:relative;display:block;padding-left:3rem;text-align:left}.timeline-dot{position:absolute;top:0;left:-9px;width:1rem;height:1rem;border:4px solid var(--color-bg-body);border-radius:999px;background:var(--color-primary)}.timeline-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.75rem;margin-bottom:.5rem;text-align:left}.timeline-heading h3{margin:0;color:var(--color-heading);font-size:1.25rem;line-height:1.75rem}.dark .timeline-heading h3{color:var(--color-heading)}.timeline-heading span{margin-left:auto;border-radius:.25rem;background:#f3f4f6;color:#6b7280;padding:.25rem .5rem;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.875rem}.dark .timeline-heading span{background:var(--color-bg-card);color:var(--color-text-base)}.timeline-item p{margin:0;color:#4b5563;line-height:1.625}.dark .timeline-item p{color:var(--color-text-base)}.timeline-item .company{margin-bottom:.5rem;color:var(--color-primary);font-size:1.125rem;font-weight:500}.project-grid{display:grid;gap:2rem}.project-card{overflow:hidden;border:1px solid var(--color-border);border-radius:1rem;background:#fff;transition:transform .3s ease,box-shadow .3s ease}.dark .project-card{background:var(--color-bg-card)}.project-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-.25rem)}.project-media{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:#f3f4f6}.dark .project-media{background:var(--color-bg-muted)}.project-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project-card:hover .project-media img{transform:scale(1.05)}.project-actions{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:1rem;background:#00000080;opacity:0;transition:opacity .3s ease}.project-card:hover .project-actions,.project-card:focus-within .project-actions{opacity:1}.project-action{display:grid;width:2.5rem;height:2.5rem;place-items:center;border-radius:999px;background:#fff;color:#111827;transition:background-color .2s ease,color .2s ease}.project-action:hover{background:var(--color-primary);color:#fff}.dark .project-action:hover{color:var(--color-bg-body)}.project-body{padding:1.5rem}.project-body h3{margin:0 0 .5rem;color:var(--color-heading);font-size:1.25rem;line-height:1.75rem;transition:color .2s ease}.project-card:hover .project-body h3{color:var(--color-primary)}.project-body p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0 0 1rem;color:var(--color-muted)}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag-list span{border:1px solid color-mix(in srgb,var(--color-primary),transparent 80%);border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 90%);color:var(--color-primary);padding:.125rem .625rem;font-size:.75rem;font-weight:500}.contact-section{text-align:center}.contact-section>p{max-width:40rem;margin:-2rem auto 2rem;color:var(--color-muted)}.contact-form{display:grid;gap:1rem;padding:2rem;border:1px solid var(--color-border);border-radius:1rem;background:#fff;box-shadow:var(--shadow-card);text-align:left}.dark .contact-form{background:var(--color-bg-card)}.contact-form label{color:var(--color-text-base);font-size:.875rem;font-weight:500}input,textarea{width:100%;border:1px solid var(--color-border);border-radius:.5rem;background:#f9fafb;color:var(--color-text-base);padding:.75rem 1rem;resize:none;transition:border-color .2s ease,box-shadow .2s ease}.dark input,.dark textarea{background:var(--color-bg-card-strong)}input:focus,textarea:focus{border-color:transparent;box-shadow:0 0 0 2px var(--color-primary);outline:none}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;border:0;border-radius:.5rem;background:var(--color-primary);color:#fff;padding:.75rem 1rem;font-size:1.125rem;font-weight:500;cursor:pointer;transition:opacity .2s ease}.primary-button:hover{opacity:.9}.dark .primary-button{color:var(--color-bg-body)}.primary-button svg{transition:transform .2s ease}.primary-button:hover svg{transform:translate(.25rem)}.email-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin-top:3rem;color:#6b7280;font-size:.875rem;text-decoration:none;transition:color .2s ease}.email-link:hover{color:var(--color-primary)}.email-link svg{width:1rem;height:1rem}.site-footer{display:block;padding:2rem 1rem;color:#6b7280;font-size:.875rem;text-align:center}.site-footer p{display:flex;flex-wrap:wrap;justify-content:center;gap:.35rem 1rem;margin:0}#visitCounter:empty{display:none}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes feedback{0%,to{opacity:0}18%,82%{opacity:1}}@media(min-width:768px){.stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.stack-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.page-stack>*+*{margin-top:3rem}.hero{min-height:92vh}.section{padding:3rem 0}.timeline{margin-left:.75rem}.timeline-item{padding-left:2rem}.timeline-heading{align-items:flex-start;flex-direction:column}.timeline-heading span{margin-left:0}.contact-form{padding:1.25rem}}
