body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{margin:0 auto;max-width:1200px;padding-inline:24px}.hero{background:transparent;padding-block:64px;position:relative}.hero__grid{grid-gap:40px;align-items:center;display:grid;gap:40px;grid-template-columns:1.1fr .9fr}.eyebrow{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.08em;margin-bottom:8px;text-transform:uppercase}.hero__title{font-size:clamp(32px,4.2vw,48px);font-weight:800;line-height:1.1;margin:0 0 12px}.grad{background:linear-gradient(90deg,#7dd3fc,#60a5fa);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__subtitle{color:var(--text-muted);margin-bottom:20px;max-width:60ch}.hero__actions{display:flex;gap:12px;margin-bottom:20px}.button{border-radius:calc(var(--radius, 14px) - 6px);transition:box-shadow .15s ease,background .15s ease,-webkit-transform .02s ease,-webkit-filter .15s ease;transition:transform .02s ease,box-shadow .15s ease,background .15s ease,filter .15s ease;transition:transform .02s ease,box-shadow .15s ease,background .15s ease,filter .15s ease,-webkit-transform .02s ease,-webkit-filter .15s ease}.button--primary{background:var(--primary);color:#fff;color:var(--primary-foreground,#fff)}.button--primary:hover{box-shadow:var(--shadow-md);-webkit-filter:brightness(1.06);filter:brightness(1.06)}.button--ghost{background:transparent}.tech-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.chip{background:color-mix(in oklab,var(--surface) 75%,transparent);border:1px solid var(--border);border-radius:9999px;color:var(--text);padding:6px 12px}.chip--sm{font-size:12px;padding:4px 10px}.hero__visual{display:grid;place-items:center}.visual__stage{aspect-ratio:1/1;isolation:isolate;overflow:visible;position:relative;width:min(360px,90%)}.visual__glow{background:radial-gradient(closest-side,rgba(97,218,251,.18),transparent 70%),radial-gradient(60% 90% at 50% 50%,rgba(0,0,0,.35),transparent 70%);border-radius:24px;-webkit-filter:drop-shadow(0 0 26px rgba(97,218,251,.35));filter:drop-shadow(0 0 26px rgba(97,218,251,.35));inset:-10%;position:absolute;z-index:0}.visual__img{border-radius:24px;box-shadow:var(--shadow-lg);height:100%;object-fit:cover;position:relative;width:100%;z-index:1}.featured{padding-block:56px}.section-title{font-size:clamp(24px,3vw,32px);margin-bottom:20px}.featured__grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}.project-card{border-radius:14px;border-radius:var(--radius,14px);box-shadow:var(--shadow-sm);color:var(--text);display:grid;grid-template-rows:160px auto;text-decoration:none;transition:box-shadow .2s ease,border-color .2s ease,-webkit-transform .12s ease;transition:transform .12s ease,box-shadow .2s ease,border-color .2s ease;transition:transform .12s ease,box-shadow .2s ease,border-color .2s ease,-webkit-transform .12s ease}.project-card:hover{border-color:color-mix(in oklab,var(--primary) 20%,var(--border))}.project-card__body{padding:12px 14px 14px}.project-card__title{font-weight:700;margin:2px 0 6px}.project-card__desc,.stack{margin:0 0 10px}.stack{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0}.project-card__cta{color:var(--primary);font-weight:600}@media (max-width:1024px){.hero__grid{grid-template-columns:1fr;text-align:left}.hero__visual{margin-bottom:16px;order:-1}.featured__grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.featured__grid{grid-template-columns:1fr}}.projects-page{background:var(--bg);color:var(--text);min-height:100vh}.projects-header{background:var(--muted);margin-bottom:2rem;padding:2rem 0}.projects-title{color:var(--text);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:800;margin:0 0 .75rem;text-align:center}.projects-subtitle{color:var(--text-muted);font-size:1rem;line-height:1.6;margin:0 auto;max-width:600px;text-align:center}.projects-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:2rem;padding:1rem;position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + var(--safe-top) + 1rem);z-index:100}.filters-row{flex-wrap:wrap;gap:1.5rem}.filter-group,.filters-row{align-items:center;display:flex}.filter-group{gap:.5rem}.filter-chips{display:flex;flex-wrap:wrap;gap:.5rem}.filter-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .15s ease-out;white-space:nowrap}.filter-chip:hover{background:color-mix(in oklab,var(--primary) 8%,var(--surface))}.filter-chip.active,.filter-chip:hover{border-color:color-mix(in oklab,var(--primary) 25%,var(--border))}.filter-chip.active{background:color-mix(in oklab,var(--primary) 10%,#fff);color:var(--primary);font-weight:600}.filter-chip:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.search-box{position:relative}.search-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.875rem;min-width:200px;padding:.5rem 1rem;transition:all .15s ease-out}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring);outline:none}.search-input::-webkit-input-placeholder{color:var(--text-muted)}.search-input::placeholder{color:var(--text-muted)}.sort-select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .15s ease-out}.sort-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring);outline:none}.projects-content{background:var(--bg);padding:0}.projects-layout{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr}.projects-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;padding:2rem 0}@media (min-width:1440px){.projects-grid{gap:1.5rem;grid-template-columns:repeat(4,1fr)}}@media (min-width:1024px) and (max-width:1439px){.projects-grid{gap:1.375rem;grid-template-columns:repeat(3,1fr)}}@media (min-width:640px) and (max-width:1023px){.projects-grid{gap:1.25rem;grid-template-columns:repeat(2,1fr)}}@media (max-width:639px){.projects-grid{gap:1rem;grid-template-columns:1fr}}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:all .2s ease-out;will-change:transform,box-shadow}.project-card:hover{border-color:color-mix(in oklab,var(--primary) 25%,var(--border));box-shadow:var(--shadow-md);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.project-card:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.project-card__media{aspect-ratio:16/9;overflow:hidden;position:relative}.project-card__media img{height:100%;object-fit:cover;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out;width:100%}.project-card:hover .project-card__media img{-webkit-transform:scale(1.05);transform:scale(1.05)}.project-card__youtube-indicator{align-items:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:rgba(0,0,0,.75);border-radius:50%;color:#fff;display:flex;height:2.5rem;justify-content:center;position:absolute;right:.75rem;top:.75rem;transition:all .15s ease-out;width:2.5rem}.project-card:hover .project-card__youtube-indicator{background:rgba(0,0,0,.85);-webkit-transform:scale(1.05);transform:scale(1.05)}.project-card__youtube-indicator svg{height:1.25rem;width:1.25rem}.project-card__body{display:flex;flex:1 1;flex-direction:column;gap:.75rem;padding:1.25rem}.project-card__title{-webkit-line-clamp:2;line-clamp:2;color:var(--text);font-size:1rem;font-weight:600;line-height:1.4}.project-card__desc,.project-card__title{-webkit-box-orient:vertical;display:-webkit-box;margin:0;overflow:hidden}.project-card__desc{-webkit-line-clamp:3;line-clamp:3;color:var(--text-muted);flex:1 1;font-size:.875rem;line-height:1.5}.project-card__stack{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:auto}.project-card__stack-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.75rem;padding:.25rem .5rem;transition:all .15s ease-out}.project-card__stack-item:hover{background:color-mix(in oklab,var(--primary) 8%,var(--surface));border-color:color-mix(in oklab,var(--primary) 25%,var(--border))}.project-card__actions{display:flex;gap:.5rem;margin-top:auto}.project-link{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex:1 1;font-size:.75rem;font-weight:500;padding:.375rem .75rem;text-align:center;text-decoration:none;transition:all .15s ease-out}.project-link:hover{background:color-mix(in oklab,var(--primary) 10%,#fff);border-color:color-mix(in oklab,var(--primary) 25%,var(--border));color:var(--primary)}.project-link:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.empty-state{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);grid-column:1/-1;padding:3rem 1rem;text-align:center}.empty-state h3{color:var(--text);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.empty-state p{color:var(--text-muted);font-size:.875rem;margin:0 0 1.5rem}.project-detail-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:rgba(0,0,0,.8);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.project-detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);max-height:80vh;max-width:600px;overflow-y:auto;position:relative;width:100%}.project-detail__close{align-items:center;background:var(--surface);border:none;border-radius:50%;color:var(--text);cursor:pointer;display:flex;font-size:1.25rem;height:2rem;justify-content:center;position:absolute;right:1rem;top:1rem;transition:background-color .15s ease-out;width:2rem;z-index:10}.project-detail__close:hover{background:var(--border)}.project-detail__header{border-bottom:1px solid var(--border);padding:2rem 2rem 1rem}.project-detail__title{font-size:1.5rem;font-weight:600;margin:0 0 1rem}.project-detail__stack{display:flex;flex-wrap:wrap;gap:.5rem}.project-detail__content{padding:1.5rem 2rem 2rem}.project-detail__media{border-radius:var(--radius);margin-bottom:1.5rem;overflow:hidden}.project-detail__media img{display:block;height:auto;width:100%}.project-detail__description{color:var(--text);font-size:1rem;line-height:1.6;margin:0 0 1.5rem}.project-detail__actions{display:flex;flex-wrap:wrap;gap:1rem}@media (max-width:768px){.filters-row{align-items:stretch;flex-direction:column;gap:1rem}.filter-group{justify-content:center}.search-input{min-width:100%}.projects-grid{grid-template-columns:1fr}.project-detail{border-radius:0;margin:0;max-height:100vh}.project-detail__content,.project-detail__header{padding-left:1rem;padding-right:1rem}}@media (max-width:480px){.projects-header{padding:1.5rem 0}.projects-content,.projects-filters{padding:1rem 0}.project-card__body{padding:1rem}.filter-chips{justify-content:center}}@media (prefers-reduced-motion:reduce){.filter-chip,.project-card,.project-card__media img,.project-link{transition:none}.project-card:hover{-webkit-transform:none;transform:none}}.filter-chip:focus-visible,.project-card:focus-visible,.project-detail__close:focus-visible,.search-input:focus-visible,.sort-select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.project-card.loading{-webkit-animation:loading 1.5s infinite;animation:loading 1.5s infinite;background:linear-gradient(90deg,var(--surface) 25%,var(--border) 50%,var(--surface) 75%);background-size:200% 100%}@-webkit-keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.profile-page{background:var(--bg);color:var(--text);min-height:100vh}.profile-layout{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr;margin:0 auto;max-width:var(--content-max);padding:0 1rem}.profile-sidebar{display:flex;flex-direction:column;gap:1rem;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + var(--safe-top) + .5rem);z-index:10}.profile-mini-card{position:static}.toc-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1rem;position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + var(--safe-top) + .5rem)}.toc-list{list-style:none;margin:0;padding:0}.toc-list li{margin-bottom:.125rem}.toc-link{border-radius:var(--radius);color:var(--text-muted);display:block;font-size:.875rem;font-weight:500;line-height:1.4;padding:.375rem .5rem;text-decoration:none;transition:all .15s ease-out}.toc-link:hover{background:color-mix(in oklab,var(--primary) 8%,var(--surface));color:var(--text)}.toc-link.active{background:color-mix(in oklab,var(--primary) 10%,var(--surface));border:1px solid color-mix(in oklab,var(--primary) 25%,var(--border));border-radius:var(--radius);color:var(--text);font-weight:600}.toc-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.profile-mini-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.75rem;padding:1.5rem}.mini-card-avatar{display:flex;justify-content:center;margin-bottom:.5rem}.mini-avatar{border:4px solid var(--primary);border-radius:50%;box-shadow:0 0 0 4px color-mix(in oklab,var(--primary) 10%,var(--surface));height:140px;object-fit:cover;width:140px}.mini-card-info{text-align:center}.mini-card-name{color:var(--text);font-size:1rem;font-weight:700;margin:0 0 .25rem}.mini-card-role{color:var(--primary);font-size:.75rem;font-weight:600;margin:0 0 .75rem}.mini-card-chips{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.75rem}.mini-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:.625rem;padding:.25rem .5rem;text-align:center;transition:all .15s ease-out}.mini-chip:hover{background:color-mix(in oklab,var(--primary) 8%,var(--surface));border-color:color-mix(in oklab,var(--primary) 25%,var(--border))}.mini-card-actions{display:flex;flex-direction:column;gap:.5rem}.button--small{font-size:.75rem;padding:.5rem .75rem}.profile-content{display:flex;flex-direction:column;gap:2rem}.profile-section{margin-bottom:2rem;scroll-margin-top:calc(var(--header-h) + var(--safe-top) + 1rem)}.profile-section:nth-child(2n){background:var(--muted);border-radius:var(--radius-lg);margin:-1rem -1rem 2rem;padding:1rem}.section-title{color:var(--text);font-size:1.5rem;font-weight:800;margin:1rem 0 1.25rem;padding-bottom:.5rem;position:relative}.section-title:after{background:var(--primary);border-radius:2px;bottom:0;content:"";height:3px;left:0;position:absolute;width:2rem}.section-content{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem}.about-text{margin-bottom:1rem}.about-summary{color:var(--text);font-size:.875rem;line-height:1.6;margin:0 0 1rem;max-width:65ch}.about-characteristics h3{color:var(--text);font-size:.875rem;font-weight:700;margin:0 0 .5rem}.about-characteristics ul{list-style:none;margin:0;padding:0}.about-characteristics li{color:var(--text-muted);font-size:.75rem;padding:.25rem 0 .25rem 1rem;position:relative}.about-characteristics li:before{color:var(--border);content:"•";font-size:1.2em;font-weight:700;left:0;position:absolute}.quick-info-card{background:color-mix(in oklab,var(--primary) 5%,var(--surface));border:1px solid color-mix(in oklab,var(--primary) 10%,var(--border));border-radius:var(--radius);padding:1rem}.quick-info-card h3{color:var(--text);font-size:.875rem;font-weight:700;margin:0 0 .5rem}.contact-info p{color:var(--text-muted);font-size:.75rem;margin:.25rem 0}.contact-info a{color:var(--primary);text-decoration:none;transition:all .15s ease-out}.contact-info a:hover{color:var(--link-hover);text-decoration:underline}.contact-info a:focus-visible{outline:3px solid var(--ring);outline-offset:2px}.skills-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.skill-category h3{color:var(--text);font-size:.875rem;font-weight:700;margin:0 0 .5rem}.skill-chips{display:flex;flex-wrap:wrap;gap:.375rem}.skill-chip{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);display:inline-flex;font-size:.625rem;gap:.25rem;padding:.25rem .5rem;transition:all .15s ease-out}.skill-chip:hover{background:color-mix(in oklab,var(--primary) 8%,var(--surface));border-color:color-mix(in oklab,var(--primary) 25%,var(--border))}.timeline{padding-left:1rem;position:relative}.timeline:before{background:var(--border);bottom:0;content:"";left:.25rem;position:absolute;top:0;width:2px}.timeline-item{margin-bottom:1rem;position:relative}.timeline-marker{background:var(--primary);border:2px solid var(--surface);border-radius:50%;height:.375rem;left:-.5rem;position:absolute;top:.5rem;width:.375rem;z-index:1}.timeline-content{margin-left:.5rem}.experience-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;transition:all .15s ease-out}.experience-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.experience-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.company-name{color:var(--text);font-size:1rem;font-weight:700;margin:0}.experience-period{background:color-mix(in oklab,var(--primary) 8%,var(--surface));border-radius:var(--radius);color:var(--text-muted);font-size:.625rem;padding:.125rem .375rem}.position-title{color:var(--primary);font-size:.75rem;font-weight:600;margin:0 0 .25rem}.location{color:var(--text-muted);font-size:.625rem;margin:0 0 .5rem}.task-list{list-style:none;margin:0;padding:0}.task-list li{color:var(--text-muted);font-size:.75rem;padding:.125rem 0 .125rem .75rem;position:relative;transition:opacity .2s ease-out}.task-list li:before{color:var(--border);content:"•";font-size:1.2em;font-weight:700;left:0;position:absolute}.task-list li.hidden{margin:0;max-height:0;opacity:0;overflow:hidden;padding:0}.expand-button{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.625rem;margin-top:.25rem;padding:.25rem 0;transition:color .15s ease-out}.expand-button:hover{color:var(--accent)}.education-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.education-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;gap:.5rem;padding:1rem;transition:all .15s ease-out}.education-card:hover{border-color:var(--primary);box-shadow:var(--shadow-sm)}.education-icon{flex-shrink:0;font-size:1rem}.education-content{flex:1 1}.education-title{color:var(--text);font-size:.875rem;font-weight:700;margin:0 0 .25rem}.education-place{color:var(--primary);font-size:.625rem;font-weight:600;margin:0 0 .125rem}.education-date{color:var(--text-muted);font-size:.625rem;margin:0 0 .5rem}.education-achievements ul{list-style:none;margin:0;padding:0}.education-achievements li{color:var(--text-muted);font-size:.625rem;padding:.125rem 0 .125rem .5rem;position:relative}.education-achievements li:before{color:var(--primary);content:"→";font-size:.5rem;left:0;position:absolute}.contact-cta{padding:1rem;text-align:center}.cta-text{color:var(--text-muted);font-size:.875rem;margin:0 0 1rem}.cta-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}@media (min-width:1024px){.profile-layout{gap:1.5rem;grid-template-columns:260px 1fr}.profile-content{gap:1.5rem}}@media (min-width:1200px){.profile-layout{gap:2rem;grid-template-columns:280px 1fr}.profile-content{gap:2rem}}@media (max-width:1024px){.profile-sidebar{flex-direction:row;gap:.75rem;order:-1;position:static}.toc-nav{flex:1 1;padding:.75rem}.toc-list{display:flex;flex-wrap:wrap;gap:.375rem}.toc-list li{margin-bottom:0}.toc-link{border-radius:var(--radius);padding:.25rem .5rem}.toc-link.active{background:var(--primary);border-color:var(--primary);color:#fff}.profile-mini-card{flex:1 1;min-width:200px}}@media (max-width:768px){.profile-layout{grid-template-columns:1fr}.profile-sidebar{flex-direction:column;gap:.75rem;order:-1}.toc-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.75rem}.toc-list{display:flex;flex-wrap:wrap;gap:.375rem}.toc-list li{margin-bottom:0}.toc-link{border-radius:var(--radius);padding:.25rem .5rem}.toc-link.active{background:var(--primary);border-left:none;color:#fff}.profile-mini-card{margin-bottom:1rem}.mini-avatar{height:120px;width:120px}.education-grid,.skills-grid{grid-template-columns:1fr}.experience-header{align-items:flex-start;flex-direction:column;gap:.25rem}.timeline{padding-left:.75rem}.timeline-marker{left:-.375rem}.timeline-content{margin-left:.25rem}}@media (max-width:640px){.profile-layout{padding:0 .75rem}.section-content{padding:.75rem}.profile-chips .chip,.skill-chip{font-size:.5rem;padding:.125rem .375rem}.cta-actions{align-items:center;flex-direction:column}}@media (prefers-reduced-motion:reduce){.education-card,.expand-button,.experience-card,.skill-chip,.toc-link{transition:none}}.expand-button:focus-visible,.toc-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media print{.profile-sidebar{order:-1;position:static}.toc-nav{display:none}.profile-mini-card{-webkit-column-break-inside:avoid;border:2px solid #000!important;break-inside:avoid;margin-bottom:2rem;page-break-inside:avoid}.profile-mini-card,.section-content{background:#fff!important;box-shadow:none!important}.section-content{border:1px solid #000!important}.profile-layout{grid-template-columns:1fr}.profile-page{background:#fff!important;color:#000!important}.section-title:after{background:#000!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.mini-chip,.skill-chip{background:#fff!important;border:1px solid #000!important;color:#000!important}}:root{--sidebar-w:20vw;--sidebar-min-w:280px;--grid-gap:24px;--page-pad:24px;--content-max:1200px;--header-h:64px;--header-bg:color-mix(in oklab,var(--surface) 88%,transparent)}@supports (padding-top:env(safe-area-inset-top)){:root{--safe-top:env(safe-area-inset-top)}}@supports not (padding-top:env(safe-area-inset-top)){:root{--safe-top:0px}}:root{--bg:#f7f9fb;--surface:#fff;--muted:#f1f5f9;--border:#e5eaf0;--ring:#cbd5e1;--text:#0f172a;--text-muted:#475569;--primary:#2563eb;--primary-foreground:#fff;--link:var(--primary);--link-hover:#1e40af;--success:#16a34a;--warning:#f59e0b;--danger:#dc2626;--radius:14px;--shadow-sm:0 1px 3px rgba(15,23,42,.08);--shadow-md:0 8px 25px rgba(15,23,42,.12);--shadow-lg:0 18px 40px rgba(15,23,42,.16);--font-sans:ui-sans-serif,system-ui,-apple-system,"Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--leading:1.6;--color-react:var(--primary);--color-react-fade:rgba(37,99,235,.1)}@media (min-width:1440px){:root{--content-max:1280px;--sidebar-w:320px}}[data-theme=dark]{--bg:#0f1419;--surface:#1a1f2e;--muted:#252b3d;--border:#2d3748;--ring:#4a5568;--text:#f7fafc;--text-muted:#a0aec0;--primary:#3b82f6;--primary-foreground:#fff;--link:var(--primary);--link-hover:#60a5fa;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow-md:0 8px 24px rgba(0,0,0,.4);--shadow-lg:0 18px 40px rgba(0,0,0,.5);--color-primary-dark:var(--bg);--color-primary-dark-fade:rgba(15,20,25,.95);--color-primary-light:var(--text);--color-primary-light-fade:rgba(247,250,252,.1);--color-text:var(--text);--color-background:var(--bg);--color-border:var(--border);--color-react:var(--primary);--color-react-fade:rgba(59,130,246,.1)}body,html{background:#f7f9fb;background:var(--bg);color:#0f172a;color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Inter,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-family:var(--font-sans);line-height:1.6;line-height:var(--leading);margin:0;padding:0}html{scroll-padding-top:calc(72px + var(--safe-top));scroll-padding-top:calc(var(--header-h) + var(--safe-top) + 8px)}.App{background:#f7f9fb;background:var(--bg);min-height:100vh;text-align:center}h1{font-size:clamp(32px,4vw,40px);font-weight:800;letter-spacing:-.01em;line-height:1.2;margin:0 0 1rem}h1,h2{color:#0f172a;color:var(--text)}h2{font-size:clamp(24px,3vw,32px);font-weight:700;line-height:1.3;margin:0 0 .75rem}h3{font-size:clamp(20px,2.5vw,24px);font-weight:600;margin:0 0 .5rem}h3,p{color:#0f172a;color:var(--text)}p{font-size:16px;font-weight:500;line-height:1.6;line-height:var(--leading);margin:0 0 1rem}a{color:#2563eb;color:var(--link);text-decoration:none;transition:color .2s ease}a:hover{color:#1e40af;color:var(--link-hover);text-decoration:underline}a:focus-visible{box-shadow:0 0 0 4px color-mix(in oklab,#2563eb 25%,transparent);box-shadow:0 0 0 4px color-mix(in oklab,var(--primary) 25%,transparent);outline:3px solid color-mix(in oklab,#2563eb 60%,#fff);outline:3px solid color-mix(in oklab,var(--primary) 60%,#fff);outline-offset:2px}.app-header{backdrop-filter:saturate(120%) blur(8px);-webkit-backdrop-filter:saturate(120%) blur(8px);background:color-mix(in oklab,#fff 88%,transparent);background:var(--header-bg);border-bottom:1px solid #e5eaf0;border-bottom:1px solid var(--border);inset:0 0 auto 0;padding-top:var(--safe-top);position:fixed;z-index:1000}.app-header,.app-header__inner{height:calc(64px + var(--safe-top));height:calc(var(--header-h) + var(--safe-top))}.app-header__inner{grid-gap:24px;grid-gap:var(--grid-gap);align-items:center;display:grid;gap:24px;gap:var(--grid-gap);grid-template-columns:20vw 1fr auto;grid-template-columns:var(--sidebar-w) 1fr auto;margin:0 auto;max-width:1248px;max-width:calc(var(--content-max) + 48px);padding:0 24px}.app-header-spacer{height:calc(64px + var(--safe-top));height:calc(var(--header-h) + var(--safe-top))}@media (prefers-reduced-transparency:reduce){.app-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff;background:var(--surface)}}.brand{align-items:center;display:flex;grid-column:1;justify-self:start}.brand img{height:36px;width:auto}.main-nav{align-items:center;display:flex;font-size:1.1em;gap:.5rem;grid-column:2;justify-self:start}.main-nav a{border-radius:9999px;color:#475569;color:var(--text-muted);font-weight:500;padding:8px 14px;transition:all .2s ease}.main-nav a:hover{background:color-mix(in oklab,#2563eb 8%,#fff);background:color-mix(in oklab,var(--primary) 8%,var(--surface));color:#0f172a;color:var(--text);text-decoration:none}.main-nav a[aria-current=page]{background:color-mix(in oklab,#2563eb 12%,#fff);background:color-mix(in oklab,var(--primary) 12%,var(--surface));color:#0f172a;color:var(--text)}.actions{align-items:center;display:flex;gap:.75rem;grid-column:3;justify-self:end}.App-header div:first-child{flex-shrink:0}.App-logo{height:10vh;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite}}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.logo-stage{-webkit-animation:none!important;animation:none!important;aspect-ratio:1/1;isolation:isolate;margin:0 auto;overflow:visible;position:relative;width:320px}.logo-bloom,.logo-stage{-webkit-transform:none!important;transform:none!important}.logo-bloom{background:transparent;border-radius:50%;-webkit-filter:none;filter:none;inset:-10%;pointer-events:none;position:absolute;z-index:0}.logo-rotor{-webkit-animation:logo-spin 12s linear infinite;animation:logo-spin 12s linear infinite;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:none!important;display:grid;place-items:center;position:relative;-webkit-transform-origin:center center;transform-origin:center center;will-change:transform;z-index:1}.logo-img,.logo-rotor{box-shadow:none!important;-webkit-filter:none!important;filter:none!important;text-shadow:none!important}.logo-img{display:block;height:120px;width:120px}@-webkit-keyframes logo-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes logo-spin{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@media (max-width:768px){.logo-stage{width:240px}.logo-img{height:96px;width:96px}}.header-menu{align-items:center;display:flex;font-size:1.1em;gap:.5rem}.header-menu div{margin:0}.header-menu a{border-radius:9999px;color:#475569;color:var(--text-muted);font-weight:500;padding:8px 14px;transition:all .2s ease}.header-menu a:hover{background:color-mix(in oklab,#2563eb 8%,#fff);background:color-mix(in oklab,var(--primary) 8%,var(--surface));color:#0f172a;color:var(--text);text-decoration:none}.header-menu a[aria-current=page]{background:color-mix(in oklab,#2563eb 12%,#fff);background:color-mix(in oklab,var(--primary) 12%,var(--surface));color:#0f172a;color:var(--text)}.switchers-container{align-items:center;display:flex;gap:.75rem;position:absolute;right:2em;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:100}.theme-switcher{position:static}.theme-switcher button{background:transparent;border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:8px;border-radius:calc(var(--radius) - 6px);box-shadow:0 1px 3px rgba(15,23,42,.08);box-shadow:var(--shadow-sm);color:#0f172a;color:var(--text);cursor:pointer;font-size:16px;font-weight:500;padding:8px 12px;transition:all .2s ease}.theme-switcher button:hover{background:#fff;background:var(--surface);border-color:#2563eb;border-color:var(--primary);box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md);color:#2563eb;color:var(--primary);-webkit-transform:scale(1.05);transform:scale(1.05)}.theme-switcher button:focus-visible{outline:3px solid color-mix(in oklab,#2563eb 60%,#fff);outline:3px solid color-mix(in oklab,var(--primary) 60%,#fff);outline-offset:2px}.language-switcher{display:flex;gap:.25rem;position:static}.language-switcher button{background:transparent;border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:9999px;box-shadow:0 1px 3px rgba(15,23,42,.08);box-shadow:var(--shadow-sm);color:#475569;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:500;padding:6px 12px;transition:all .2s ease}.language-switcher button:hover{background:color-mix(in oklab,#2563eb 8%,#fff);background:color-mix(in oklab,var(--primary) 8%,var(--surface));border-color:#2563eb;border-color:var(--primary);box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md);color:#2563eb;color:var(--primary);-webkit-transform:scale(1.05);transform:scale(1.05)}.language-switcher button.active{background:color-mix(in oklab,#2563eb 12%,#fff);background:color-mix(in oklab,var(--primary) 12%,var(--surface));border-color:color-mix(in oklab,#2563eb 20%,#e5eaf0);border-color:color-mix(in oklab,var(--primary) 20%,var(--border));color:color-mix(in oklab,#2563eb 80%,#000);color:color-mix(in oklab,var(--primary) 80%,#000)}.language-switcher button:focus-visible{outline:3px solid color-mix(in oklab,#2563eb 60%,#fff);outline:3px solid color-mix(in oklab,var(--primary) 60%,#fff);outline-offset:2px}.Container{display:flex;flex-direction:row;justify-content:center;margin:0 auto;max-width:1200px;min-height:90vh}.LeftBar{align-items:flex-start;background:#fff;background:var(--surface);border-right:1px solid #e5eaf0;border-right:1px solid var(--border);box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md);color:#0f172a;color:var(--text);display:flex;flex-direction:column;justify-content:flex-start;min-width:280px;min-width:var(--sidebar-min-w);padding:24px;width:20vw;width:var(--sidebar-w)}.LeftBar h1{font-size:clamp(24px,3vw,28px);font-weight:700;margin-bottom:1rem}.LeftBar p{color:#475569;color:var(--text-muted);font-size:14px;font-weight:500;margin-bottom:.5rem}.personalData{color:#2563eb;color:var(--link);font-weight:500;transition:color .2s ease}.personalData:hover{color:#1e40af;color:var(--link-hover)}.RightBar{background:#f7f9fb;background:var(--bg);color:#0f172a;color:var(--text);padding:32px 48px;width:100%}.container-data{background:#fff;background:var(--surface);border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);box-shadow:0 1px 3px rgba(15,23,42,.08);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:space-between;margin-bottom:1.5rem;padding:28px;transition:box-shadow .2s ease}.container-data:hover{box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md)}.container-data div{margin:auto;max-width:900px}.container-data div ul{margin:0;padding:0}.skills-data li{font-weight:500;margin-left:2em}.skills-data ul{-webkit-columns:2;column-count:2}.work-data{align-items:center}.blogImg{box-sizing:border-box;margin:0;max-width:none;padding:0;text-align:center;width:100%}.blogImg img{border-radius:14px;border-radius:var(--radius);box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md);height:20em}.blogImg a,.blogImg a:visited{color:#2563eb;color:var(--link)}.blogImg a{font-weight:500}.blogImg a:hover{color:#1e40af;color:var(--link-hover)}.blog-ul li a{font-size:1.1em;font-weight:500}.blog-ul li a,.blog-ul li a:visited{color:#2563eb;color:var(--link)}.blog-ul li a:hover{color:#1e40af;color:var(--link-hover)}.blog-ul li{display:inline;font-size:1em;margin-right:1em}.blog-ul li:not(:last-child):after{content:"|";margin-left:1em}.Warehouse-image{border-radius:14px;border-radius:var(--radius);box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md);display:block;height:auto;max-width:none;object-fit:contain;width:100%}.project-detail-page{background:#f7f9fb;background:var(--bg);min-height:100vh;padding:2rem 0}.project-detail-page .container{margin:0 auto;max-width:1200px;max-width:var(--content-max);padding:0 24px;padding:0 var(--page-pad)}.project-detail__back{align-items:center;color:#475569;color:var(--text-muted);display:inline-flex;font-size:.875rem;gap:.5rem;margin-bottom:1.5rem;transition:color .2s ease}.project-detail__back:hover{color:#0f172a;color:var(--text);text-decoration:none}.project-detail__layout{grid-gap:3rem;align-items:start;display:grid;gap:3rem;grid-template-columns:1fr 400px}.project-detail__main{display:flex;flex-direction:column;gap:2rem}.project-detail__header-section{display:flex;flex-direction:column;gap:1rem}.project-detail__page-title{color:#0f172a;color:var(--text);font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:0}.project-detail__tags{display:flex;flex-wrap:wrap;gap:.5rem}.project-detail__tags .chip{background:#fff;background:var(--surface);border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);color:#0f172a;color:var(--text);font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .15s ease-out}.project-detail__tags .chip:hover{background:color-mix(in oklab,#2563eb 8%,#fff);background:color-mix(in oklab,var(--primary) 8%,var(--surface));border-color:color-mix(in oklab,#2563eb 25%,#e5eaf0);border-color:color-mix(in oklab,var(--primary) 25%,var(--border))}.project-detail__description{background:#fff;background:var(--surface);border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);box-shadow:0 1px 3px rgba(15,23,42,.08);box-shadow:var(--shadow-sm);padding:2rem}.project-detail__description p{color:#0f172a;color:var(--text);font-size:1rem;line-height:1.7;margin:0;white-space:pre-line}.project-detail__actions-section{display:flex;flex-wrap:wrap;gap:1rem}.project-detail__actions-section .button{min-width:140px}.project-detail__sidebar{display:flex;flex-direction:column;gap:1.5rem;max-height:calc(100vh - 64px - var(--safe-top) - 4rem);max-height:calc(100vh - var(--header-h) - var(--safe-top) - 4rem);overflow-y:auto;position:-webkit-sticky;position:sticky;top:calc(64px + var(--safe-top) + 2rem);top:calc(var(--header-h) + var(--safe-top) + 2rem)}.project-detail__media-item{background:#fff;background:var(--surface);border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);box-shadow:0 1px 3px rgba(15,23,42,.08);box-shadow:var(--shadow-sm);padding:1.5rem}.project-detail__media-label{color:#475569;color:var(--text-muted);font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:1rem;text-transform:uppercase}.project-detail__video-wrapper{background:#f1f5f9;background:var(--muted);border-radius:14px;border-radius:var(--radius);margin-bottom:1rem;overflow:hidden;position:relative;width:100%}.project-detail__video-wrapper>div{padding-bottom:56.25%;position:relative;width:100%}.project-detail__video-wrapper>div>iframe{border:none;border-radius:14px;border-radius:var(--radius);height:100%;left:0;position:absolute;top:0;width:100%}.project-detail__image-wrapper{background:#f1f5f9;background:var(--muted);border-radius:14px;border-radius:var(--radius);margin-bottom:1rem;overflow:hidden;width:100%}.project-detail__image-wrapper img{border-radius:14px;border-radius:var(--radius);display:block;height:auto;width:100%}.project-detail__gallery{display:flex;flex-direction:column;gap:1rem}.project-detail__gallery-item{transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease;width:100%}.project-detail__gallery-item:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)}.project-detail__gallery-item .project-detail__image-wrapper{cursor:pointer;margin-bottom:0;transition:box-shadow .2s ease}.project-detail__gallery-item .project-detail__image-wrapper:hover{box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md)}.project-detail__gallery-item .project-detail__image-wrapper img{transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}.project-detail__gallery-item:hover .project-detail__image-wrapper img{-webkit-transform:scale(1.02);transform:scale(1.02)}.project-detail__media-link{align-items:center;color:#2563eb;color:var(--primary);display:inline-flex;font-size:.875rem;font-weight:500;gap:.5rem;transition:color .2s ease}.project-detail__media-link:hover{color:#1e40af;color:var(--link-hover);text-decoration:none}.project-detail__not-found{background:#fff;background:var(--surface);border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius);box-shadow:0 1px 3px rgba(15,23,42,.08);box-shadow:var(--shadow-sm);padding:4rem 2rem;text-align:center}.project-detail__not-found h1{margin-bottom:1rem}.project-detail__not-found p{color:#475569;color:var(--text-muted)}@media (max-width:1024px){.project-detail__layout{gap:2rem;grid-template-columns:1fr}.project-detail__sidebar{max-height:none;position:static}}@media (max-width:768px){.project-detail-page{padding:1rem 0}.project-detail-page .container{padding:0 1rem}.project-detail__description{padding:1.5rem}.project-detail__actions-section{flex-direction:column}.project-detail__actions-section .button{width:100%}.project-detail__media-item{padding:1rem}}.particles{height:100%;left:0;opacity:.08;position:fixed;top:0;width:100%;z-index:-1}.profilePic{text-align:center}.profilePic img{border-radius:14px;border-radius:var(--radius);box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md)}.tool-tip{background:#fff;background:var(--surface);border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:10px;border-radius:calc(var(--radius) - 4px);box-shadow:0 18px 40px rgba(15,23,42,.16);box-shadow:var(--shadow-lg);color:#0f172a;color:var(--text);font-size:.875em;opacity:0;padding:12px 16px;pointer-events:none;transition:opacity .3s ease;-webkit-user-select:none;user-select:none;z-index:1}:has(>.tool-tip){position:relative}:has(>.tool-tip):hover .tool-tip{opacity:1}.returnBtn{display:none;margin-bottom:2em;margin-top:2em}.NavLinkBlog{text-underline-offset:2px}.button{background:#fff;background:var(--surface);border:1px solid #e5eaf0;border:1px solid var(--border);border-radius:8px;border-radius:calc(var(--radius) - 6px);box-shadow:0 1px 3px rgba(15,23,42,.08);box-shadow:var(--shadow-sm);color:#0f172a;color:var(--text);cursor:pointer;font-weight:500;padding:10px 16px;transition:all .2s ease}.button:hover{background:#f1f5f9;background:var(--muted);box-shadow:0 8px 25px rgba(15,23,42,.12);box-shadow:var(--shadow-md);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.button.primary{background:#2563eb;background:var(--primary);border-color:#2563eb;border-color:var(--primary);color:#fff;color:var(--primary-foreground)}.button.primary:hover{background:#1e40af;background:var(--link-hover);-webkit-filter:brightness(1.05);filter:brightness(1.05)}.button.ghost{background:transparent}.button:active{-webkit-transform:translateY(1px);transform:translateY(1px)}.button:focus-visible{outline:3px solid color-mix(in oklab,#2563eb 60%,#fff);outline:3px solid color-mix(in oklab,var(--primary) 60%,#fff);outline-offset:2px}@media (max-width:1024px){.app-header__inner{gap:16px;grid-template-columns:1fr auto}.brand{grid-column:1}.actions{grid-column:2}.main-nav{display:none}}@media (max-width:768px){.app-header__inner{padding:0 16px}.Container{flex-direction:column}.LeftBar{min-width:auto;order:2;width:100%}.RightBar{padding:24px 16px}.container-data{padding:20px}}@media (max-width:480px){.RightBar{padding:16px 12px}.container-data{padding:16px}.switchers-container{gap:.5rem}.language-switcher button{font-size:12px;padding:4px 8px}.theme-switcher button{font-size:14px;padding:6px 10px}}@media screen and (max-width:600px){.LeftBar{display:none}.RightBar{padding:1em}}
/*# sourceMappingURL=main.276bcb8b.css.map*/