header{background:#fff9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);position:sticky;top:0;z-index:9999;border-bottom:1px solid var(--secondary-line)}.header-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:var(--header-height);padding:0;gap:clamp(.75rem,2vw,1.25rem)}.brand{font-weight:700;letter-spacing:.0125em;color:var(--theme-fg);display:flex;align-items:center;gap:.625rem;font-size:clamp(1.125rem,2vw,1.25rem);text-decoration:none;padding:.25rem .5rem;border-radius:.5rem;transition:background .2s ease,color .2s ease,transform .08s ease;justify-self:start}.brand:hover{background:var(--secondary-bg);color:var(--link);text-decoration:none;transform:translateY(-.0625rem)}.brand:active{transform:translateY(0)}header nav{justify-self:center}header nav ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(.5rem,3vw,2rem);align-items:center}header nav li{display:flex;align-items:center}header nav a{color:var(--theme-fg);text-decoration:none;font-size:clamp(1rem,1.8vw,1.125rem);font-weight:500;padding:.375rem .625rem;border-radius:999px;border:1px solid transparent;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .08s ease,box-shadow .2s ease}header nav a:hover{color:var(--link);background:var(--secondary-bg);border-color:var(--secondary-line);text-decoration:none;transform:translateY(-.0625rem);box-shadow:0 .0625rem .125rem #00000014}header nav a:active{transform:translateY(0)}header nav a:focus-visible{outline:2px solid var(--link);outline-offset:.125rem;border-color:var(--link)}@media (prefers-reduced-motion: reduce){header nav a{transition:none}header nav a:hover,header nav a:active{transform:none}}.header-cta{display:inline-flex;align-items:center;justify-content:center;padding:clamp(.5rem,1.5vw,.625rem) clamp(.625rem,2vw,1rem);border-radius:999px;background:transparent;color:var(--theme-fg);text-decoration:none;font-size:clamp(1rem,1.8vw,1.125rem);line-height:1.2;font-weight:600;border:1px solid var(--secondary-line);box-shadow:none;transition:background .2s ease,border-color .2s ease}.header-cta:hover{background:var(--secondary-bg);border-color:var(--secondary-line);text-decoration:none}.header-cta:active{transform:translateY(0)}.header-cta:focus-visible{outline:2px solid var(--accent-line);outline-offset:.125rem}@media (max-width: 44.9375rem){.header-inner{grid-template-columns:auto 1fr}header nav{justify-self:end}header nav ul li:not(:last-child){display:none}}.hero{text-align:center;padding:clamp(2.5rem,5vw + 2rem,3rem) 0 clamp(3.125rem,3vw + 1rem,4rem);background:#fff;border-bottom:1px solid var(--primary-line)}.hero-content{max-width:min(56.25rem,90vw);margin:0 auto}.hero h1{font-size:clamp(2.5rem,6vw,4rem);font-weight:800;line-height:1.1;margin:0 0 clamp(.75rem,1vw,1rem);background:linear-gradient(135deg,var(--theme-fg) 0%,var(--fg) 60%,var(--muted) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em;white-space:nowrap}.hero-location{font-size:clamp(1.25rem,3vw,1.75rem);font-weight:600;color:var(--muted);margin:0 0 clamp(1.25rem,2vw,1.5rem);letter-spacing:-.01em}.hero-subtitle{font-size:clamp(1.125rem,2.5vw,1.5rem);line-height:1.6;color:var(--muted);margin:0 0 clamp(1.5rem,3vw,2rem);max-width:min(43.75rem,85vw);margin-left:auto;margin-right:auto}.hero-cta-group{display:flex;gap:clamp(.75rem,2vw,1rem);justify-content:center;flex-wrap:wrap;margin-top:clamp(2rem,4vw,3rem)}.hero-cta{display:inline-flex;align-items:center;gap:.5rem;padding:clamp(.75rem,1.5vw,.875rem) clamp(1.5rem,3vw,2rem);font-size:clamp(.9375rem,1.5vw,1rem);font-weight:600;border-radius:.5rem;text-decoration:none;transition:all .2s ease;cursor:pointer}.hero-cta-primary{background:var(--gradient-primary);color:#fff;border:none;box-shadow:0 .25rem .75rem #00000026;font-weight:600}.hero-cta-primary:hover{transform:translateY(-.125rem);box-shadow:0 .5rem 1.25rem #0003}.hero-cta-secondary{background:transparent;color:var(--theme-fg);border:2px solid var(--primary-line)}.hero-cta-secondary:hover{border-color:var(--accent-line);background:var(--secondary-bg);transform:translateY(-.125rem);box-shadow:var(--shadow-md)}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:1px solid var(--primary-line);border-radius:999px;font-size:clamp(.875rem,1.5vw,.9375rem);font-weight:500;color:var(--theme-fg);margin-bottom:clamp(1rem,2vw,1.5rem)}.hero-badge-dot{width:.5rem;height:.5rem;background:var(--accent-success);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.split-screen{position:relative;height:clamp(22.5rem,50vh,37.5rem);overflow:visible;max-width:min(75rem,95vw);margin:clamp(1rem,2vw,1.5rem) auto;border-radius:clamp(0rem,2vw,.75rem);box-shadow:0 .0625rem .1875rem #0000001a}.split-container{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;border-radius:clamp(0rem,2vw,.75rem)}@media (min-width: 45rem){.split-container{flex-direction:row}}.split-side{position:relative;flex:1;display:flex;align-items:center;justify-content:center;cursor:pointer;text-decoration:none;color:inherit;min-height:clamp(16.25rem,30vh,20rem)}.split-left{background:#fff;color:var(--theme-fg);border-right:1px solid var(--primary-line)}.split-right{background:#f9fafb;color:var(--theme-fg);order:-1}@media (min-width: 45rem){.split-right{order:0}.split-side+.split-side{border-top:none}}.split-side+.split-side{border-top:1px solid var(--primary-line)}.split-content{position:relative;z-index:2;text-align:center;padding:0 clamp(1rem,3vw,1.5rem);max-width:min(26.25rem,90vw)}.split-content h2{margin:0 0 .5rem;font-size:clamp(1.375rem,4.5vw,1.75rem)}.split-content p{margin:0 0 1rem;color:var(--muted);font-size:clamp(.875rem,2.8vw,1rem)}.split-cta{display:inline-block;padding:clamp(.5rem,1.5vw,.625rem) clamp(1rem,2vw,1.125rem);border-radius:.375rem;background:#ffffff2e;color:var(--theme-fg);font-weight:600;text-decoration:none;border:1px solid rgba(255,255,255,.28);box-shadow:0 .0625rem .125rem #0000000f;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease,transform .15s ease}.split-side:hover .split-cta{background:#ffffff4d;border-color:#fff6;transform:translateY(-.125rem);box-shadow:0 .25rem .625rem #0000001f,0 0 0 .0625rem #ffffff1f inset}.split-side:active .split-cta{transform:translateY(0);box-shadow:0 .0625rem .125rem #00000014}@media (prefers-reduced-motion: reduce){.split-cta{transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}}.split-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000008;transform:translate(100%);pointer-events:none;z-index:1}.split-left .split-overlay{transform:translate(-100%)}.split-divider{position:absolute;top:0;left:50%;width:1px;height:100%;background:#00000014;transform:translate(-50%);z-index:1;display:none}@media (min-width: 45rem){.split-divider{display:block}}.split-side:focus-visible{outline:2px solid var(--link);outline-offset:-.125rem}.list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:clamp(1.25rem,2vw,1.5rem)}.projects .list,.graveyard .list{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr)}@media (max-width: 48rem){.projects .list,.graveyard .list{grid-template-columns:1fr;grid-template-rows:auto}}.item{border:1px solid var(--primary-line);border-radius:1rem;padding:clamp(1.25rem,2vw,1.5rem);display:flex;align-items:center;justify-content:space-between;background:#fff;box-shadow:0 .0625rem .1875rem #0000000a,0 .0625rem .125rem #00000008;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.item h3{margin:0 0 .5rem;font-size:clamp(1.125rem,2.5vw,1.25rem);font-weight:600}.item p{margin:0;color:var(--muted);font-size:clamp(.875rem,2vw,1rem);line-height:1.6}.item a{color:var(--link);text-decoration:none;font-weight:600;white-space:nowrap}.item a:hover{color:var(--link-hover);text-decoration:underline}a.item{color:inherit;text-decoration:none}a.item:before{content:"↗";position:absolute;top:1rem;right:1rem;color:var(--muted);opacity:.6}a.item:hover:before{opacity:1;color:var(--link)}.status{display:inline-block;font-size:clamp(.6875rem,1.5vw,.75rem);font-weight:700;padding:.3125rem .75rem;border-radius:999px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.03125em;box-shadow:var(--shadow-sm)}.item .status{margin-top:.5rem}.status-live{color:var(--status-live-fg);background:var(--status-live-bg);border-color:var(--status-live-line);box-shadow:0 .125rem .5rem #2d5f3f26}.status-dev{color:var(--status-dev-fg);background:var(--status-dev-bg);border-color:var(--status-dev-line);box-shadow:0 .125rem .5rem #8b5a0026}.status-deprecated{color:var(--status-deprecated-fg);background:var(--status-deprecated-bg);border-color:var(--status-deprecated-line)}.projects .item,.graveyard .item,.freelancing .item{position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .3s ease,border-color .2s ease}.projects .item:hover,.graveyard .item:hover,.freelancing .item:hover{transform:translateY(-.375rem) scale(1.015);border-color:var(--secondary-line);box-shadow:0 .75rem 1.5rem #00000014,0 .25rem .5rem #0000000a;background:#fff}.projects .item:after,.graveyard .item:after,.freelancing .item:after{content:"";position:absolute;top:0;left:-150%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:skew(-20deg);pointer-events:none}.projects .item:hover:after,.graveyard .item:hover:after,.freelancing .item:hover:after{animation:cardShimmer .9s ease forwards}.shimmer-sweep{position:relative;overflow:hidden}.shimmer-sweep:before{content:"";position:absolute;top:0;left:-150%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:skew(-20deg);pointer-events:none}.shimmer-sweep:hover:before{animation:cardShimmer .9s ease forwards}.hover-sweep-parent:hover .shimmer-sweep:before{animation:cardShimmer .9s ease forwards}footer{background:#fff;border-top:1px solid var(--secondary-line);padding:clamp(1rem,2vw,1.25rem) 0}.footer-inner{color:var(--theme-fg);font-size:clamp(.9375rem,1.5vw,1rem);display:flex;align-items:center;justify-content:space-between;gap:clamp(.5rem,2vw,1rem);flex-wrap:wrap}@media (min-width: 30rem){.footer-inner{flex-wrap:nowrap}}.footer-brand{display:inline-flex;align-items:center;gap:clamp(.5rem,1.5vw,.75rem)}.footer-logo{display:block;flex-shrink:0}.footer-social{display:inline-flex;align-items:center;gap:clamp(.625rem,1.5vw,.75rem)}.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:clamp(2rem,4vw,2.25rem);height:clamp(2rem,4vw,2.25rem);border-radius:999px;color:var(--theme-fg);border:1px solid transparent;text-decoration:none;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .08s ease,box-shadow .2s ease}.footer-social a:hover{background:var(--secondary-bg);border-color:var(--secondary-line);transform:translateY(-.0625rem);box-shadow:0 .0625rem .125rem #00000014}.footer-social a.linkedin:hover{color:#0a66c2}.footer-social a.twitter:hover{color:#1da1f2}.footer-social a.github:hover{color:#000}.footer-social a:focus-visible{outline:2px solid var(--link);outline-offset:.125rem;border-color:var(--link)}.footer-social .social-icon{width:20px;height:20px}.footer-inner>div{white-space:normal}@media (max-width: 30rem){.footer-inner{justify-content:center;text-align:center}}footer a{color:inherit;text-decoration:none}footer a:hover{text-decoration:underline}.freelance-intro{background:#fff;border:1px solid var(--primary-line);border-radius:1rem;padding:clamp(1rem,3vw,1.75rem);margin-bottom:clamp(1.25rem,2vw,1.5rem);color:var(--theme-fg);font-size:clamp(1rem,2vw,1.125rem);line-height:1.7;display:flex;align-items:center;gap:clamp(1rem,3vw,1.5rem);position:relative;box-shadow:var(--shadow-md)}.profile-pic-container{position:relative;width:clamp(9.375rem,20vw,11.25rem);height:clamp(10.9375rem,23vw,13.125rem);flex-shrink:0;transform:rotate(clamp(-8deg,-2vw,-15deg));margin:clamp(-1rem,-3vw,-2.5rem) 0}.profile-pic-frame{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:1rem;overflow:hidden;border:.25rem solid #ffffff;box-shadow:0 1.25rem 2.5rem -.625rem #00000040,0 .5rem 1rem -.25rem #0000001a}.profile-pic{width:100%;height:100%;object-fit:cover;display:block}.freelance-intro h3{margin:0 0 .5rem;font-size:clamp(1.25rem,3vw,1.5rem);color:var(--theme-fg)}@media (max-width: 37.5rem){.freelance-intro{flex-direction:column;text-align:center}.profile-pic-container{margin:0 auto .5rem}.freelance-intro>div:last-child{margin-top:.5rem}}.freelance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,21.25rem),1fr));gap:clamp(1.25rem,2.5vw,1.75rem)}.freelance-meta{color:var(--muted);font-size:clamp(.8125rem,1.5vw,.875rem);margin-top:clamp(.625rem,1.5vw,.75rem)}.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(.75rem,1.5vw,.875rem)}.chip{display:inline-block;padding:.25rem .625rem;border-radius:999px;background:#fff;border:1px solid #d1d5db;color:#111827;font-size:clamp(.75rem,1.5vw,.8125rem);font-weight:500;box-shadow:0 .0625rem .125rem #0000000a}.freelance-cta-section{margin-top:clamp(2rem,4vw,2.5rem);display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;max-width:42rem;margin-left:auto;margin-right:auto;background:#fff;border:1px solid var(--primary-line);border-radius:1rem;padding:clamp(2rem,4vw,2.5rem);box-shadow:var(--shadow-md);position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .3s ease,border-color .2s ease}.freelance-cta-section:hover{transform:translateY(-.375rem) scale(1.015);border-color:var(--secondary-line);box-shadow:0 .75rem 1.5rem #00000014,0 .25rem .5rem #0000000a}.freelance-cta-section:after{content:"";position:absolute;top:0;left:-150%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:skew(-20deg);pointer-events:none}.freelance-cta-section:hover:after{animation:cardShimmer .9s ease forwards}@keyframes cardShimmer{0%{left:-150%}to{left:150%}}.freelance-cta-section p{color:var(--theme-fg);margin:0;font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:600;line-height:1.3;max-width:36rem}.freelance-cta-typing{width:100%;max-width:28rem;background:#1e1e1e;color:#4fc1ff;font-family:SF Mono,Monaco,Courier New,monospace;font-size:clamp(.875rem,1.5vw,1rem);display:flex;align-items:center;justify-content:center;gap:.5rem;padding:clamp(.75rem,1.5vw,1rem) clamp(1rem,2vw,1.5rem);border-radius:.5rem;text-decoration:none;transition:background .2s ease}.terminal-prompt{color:#10b981;font-weight:700}.terminal-command:before{content:attr(data-text);animation:typing 2s steps(22) .5s forwards;overflow:hidden;white-space:nowrap;width:0;display:inline-block}@keyframes typing{to{width:100%}}.terminal-cursor{animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.freelance-cta-typing:hover{background:#2d2d30}@media (prefers-reduced-motion: reduce){.terminal-command:before{animation:none;width:100%}.terminal-cursor{animation:none}}#greeting .greet-char{display:inline-block;opacity:0;transform:translateY(8px);animation:greetIn .52s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 60ms)}@keyframes greetIn{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){#greeting .greet-char{animation:none;opacity:1;transform:none}}:root{--fg: #1a1a1a;--muted: #6b7280;--link: #374151;--link-hover: #111827;--theme-fg: #111827;--primary-bg: #f5f5f5;--secondary-bg: #e8e9eb;--accent-bg: linear-gradient(135deg, #f5f5f5 0%, #e8e9eb 100%);--primary-line: #d1d5db;--secondary-line: #b5b8bd;--gradient-primary: linear-gradient(135deg, #374151 0%, #1f2937 100%);--header-height: clamp(4rem, 10vh, 5rem);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -1px rgb(0 0 0 / .06);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -2px rgb(0 0 0 / .05);--status-live-fg: #065f46;--status-live-bg: #d1fae5;--status-live-line: #6ee7b7;--status-dev-fg: #92400e;--status-dev-bg: #fef3c7;--status-dev-line: #fcd34d;--status-deprecated-fg: #6b7280;--status-deprecated-bg: #f9fafb;--status-deprecated-line: #e5e7eb;--accent-success: #10b981}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.6;color:var(--fg);background:var(--primary-bg)}.container{max-width:75rem;margin:0 auto;padding:0 clamp(1.25rem,3vw,2.5rem)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}h1{font-size:clamp(2.25rem,5vw,3.25rem);font-weight:700;margin:0 0 1rem;line-height:1.15;letter-spacing:-.02em}h2{font-size:clamp(1.5rem,3.5vw,2rem);font-weight:700;margin:0 0 1.25rem;line-height:1.25;letter-spacing:-.01em}h3{font-size:clamp(1.125rem,2.5vw,1.375rem);font-weight:600;line-height:1.4;letter-spacing:-.005em}.social-bar{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);padding:clamp(2.5rem,4vw,4rem) 0;position:relative;overflow:hidden;border-bottom:1px solid var(--primary-line)}.social-bar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 30% 50%,rgba(59,130,246,.05) 0%,transparent 50%),radial-gradient(circle at 70% 50%,rgba(139,92,246,.05) 0%,transparent 50%);pointer-events:none}.social-bar .container{display:flex;gap:3rem;justify-content:center;align-items:center;position:relative;flex-wrap:wrap}.social-bubble{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;width:80px;height:80px;border-radius:50%;background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #00000014;transition:all .5s cubic-bezier(.175,.885,.32,1.275);animation:float 6s ease-in-out infinite;text-decoration:none;color:var(--theme-fg)}.social-bubble:nth-child(1){animation-delay:0s}.social-bubble:nth-child(2){animation-delay:2s}.social-bubble:nth-child(3){animation-delay:4s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.social-bubble:hover{transform:scale(1.15) translateY(-8px);box-shadow:0 12px 40px #00000026;border-color:currentColor}.social-icon{width:32px;height:32px;display:block;transition:transform .3s ease}.social-bubble:hover .social-icon{transform:rotate(360deg) scale(1.1)}.social-bubble-label{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);font-size:.8125rem;font-weight:600;color:var(--theme-fg);opacity:0;transition:opacity .3s ease;white-space:nowrap}.social-bubble:hover .social-bubble-label{opacity:1}.social-bubble.linkedin:hover{border-color:#0a66c2;background:#0a66c21a}.social-bubble.twitter:hover{border-color:#1da1f2;background:#1da1f21a}.social-bubble.github:hover{border-color:#24292e;background:#24292e1a}.social-bubble:focus-visible{outline:2px solid var(--link);outline-offset:.25rem}@media (prefers-reduced-motion: reduce){.social-bubble{animation:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.social-bubble:hover{transform:scale(1.15)}.social-icon{transition:none}.social-bubble:hover .social-icon{transform:scale(1.1)}}.projects,.freelancing,.faq{padding:clamp(3rem,2vw,4rem) 0}.graveyard:before,.graveyard:after{content:"";display:block;height:1px;background:var(--primary-line);margin:clamp(1rem,2vw,3rem) 0}.graveyard-details{border:0;border-radius:0;padding:0;background:transparent}.graveyard-details summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 0}.graveyard-details summary:after{content:"▶";display:inline-block;color:var(--theme-fg);font-size:clamp(1.125rem,2vw,1.25rem);line-height:1;transform:translateY(.0625rem)}.graveyard-details[open] summary:after{content:"▼"}.graveyard-details summary h2{display:inline;font-size:clamp(1.5rem,3.5vw,2rem);margin:0}.graveyard-details summary:hover{color:var(--link)}.graveyard-details summary:focus-visible{outline:2px solid var(--link);outline-offset:.25rem}.graveyard-content{margin-top:1rem}.faq .faq-list{display:grid;gap:.75rem;list-style:none;margin:0;padding:0}.faq details{border:1px solid var(--primary-line);border-radius:.75rem;background:#fff;padding:clamp(.625rem,1.5vw,.75rem) clamp(.875rem,2vw,1rem)}.faq details[open]{background:#fff;border-color:var(--secondary-line)}.faq summary{cursor:pointer;font-weight:600;outline:none;list-style:none;position:relative;padding-left:2rem}.faq summary::-webkit-details-marker{display:none}.faq summary:before{content:"▶";position:absolute;left:.5rem;color:var(--theme-fg);font-size:.875rem;transition:transform .2s ease}.faq details[open] summary:before{transform:rotate(90deg)}.faq .answer{color:var(--muted);padding-top:.375rem}
