:root{--bg-page: #f9fafb;--bg-card: #ffffff;--bg-muted: #e5e7eb;--bg-footer: #111827;--text-strong: #111827;--text-body: #4b5563;--text-muted: #6b7280;--text-footer: #9ca3af;--text-footer-dim: #6b7280;--border: #e5e7eb;--line: #d1d5db;--border-footer: #1f2937;--accent-blue: #3b82f6;--accent-purple: #a855f7;--accent-green: #22c55e;--accent-green-dark: #16a34a;--accent-orange: #f97316;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--transition: .3s}@media(prefers-color-scheme:dark){:root{--bg-page: #111827;--bg-card: #1f2937;--bg-muted: #374151;--bg-footer: #000000;--text-strong: #ffffff;--text-body: #9ca3af;--text-muted: #9ca3af;--border: #374151;--line: #374151}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;background-color:var(--bg-page);color:var(--text-body);-webkit-font-smoothing:antialiased}#app{width:100%}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}h1,h2,h3{color:var(--text-strong);line-height:1.2}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.page{min-height:100vh;background-color:var(--bg-page)}.container{width:100%;margin-inline:auto;padding-inline:1rem;padding-block:3rem}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.wrap-md{max-width:56rem;margin-inline:auto}.wrap-lg{max-width:72rem;margin-inline:auto}.section{margin-bottom:4rem}.section--last{margin-bottom:0}.grid{display:grid;gap:1.5rem;grid-template-columns:1fr}@media(min-width:768px){.grid--2,.grid--3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid--3{grid-template-columns:repeat(3,1fr)}}.hero{display:grid;grid-template-columns:1fr;gap:2rem;margin-bottom:3rem}@media(min-width:1024px){.hero{grid-template-columns:repeat(2,1fr)}}.card{background-color:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:2rem}.section-title{font-size:1.875rem;font-weight:700;margin-bottom:2rem;text-align:center}.tag-list{display:flex;flex-wrap:wrap;gap:.75rem}.tag{padding:.5rem 1rem;border-radius:var(--radius-full);font-size:.875rem;font-weight:500;background-color:var(--tag-bg);color:var(--tag-fg)}.tag--indigo{--tag-bg: #e0e7ff;--tag-fg: #4338ca}.tag--red{--tag-bg: #fee2e2;--tag-fg: #b91c1c}.tag--orange{--tag-bg: #ffedd5;--tag-fg: #c2410c}.tag--blue{--tag-bg: #dbeafe;--tag-fg: #1d4ed8}.tag--yellow{--tag-bg: #fef9c3;--tag-fg: #a16207}.tag--cyan{--tag-bg: #cffafe;--tag-fg: #0e7490}.tag--emerald{--tag-bg: #d1fae5;--tag-fg: #047857}.tag--gray{--tag-bg: #f3f4f6;--tag-fg: #374151}.tag--amber{--tag-bg: #fef3c7;--tag-fg: #b45309}.tag--green{--tag-bg: #dcfce7;--tag-fg: #15803d}.tag--purple{--tag-bg: #f3e8ff;--tag-fg: #7e22ce}.tag--teal{--tag-bg: #ccfbf1;--tag-fg: #0f766e}.tag--violet{--tag-bg: #ede9fe;--tag-fg: #6d28d9}.tag--sky{--tag-bg: #e0f2fe;--tag-fg: #0369a1}.tag--rose{--tag-bg: #ffe4e6;--tag-fg: #be123c}@media(prefers-color-scheme:dark){.tag--indigo{--tag-bg: rgb(49 46 129 / .3);--tag-fg: #a5b4fc}.tag--red{--tag-bg: rgb(127 29 29 / .3);--tag-fg: #fca5a5}.tag--orange{--tag-bg: rgb(124 45 18 / .3);--tag-fg: #fdba74}.tag--blue{--tag-bg: rgb(30 58 138 / .3);--tag-fg: #93c5fd}.tag--yellow{--tag-bg: rgb(113 63 18 / .3);--tag-fg: #fde047}.tag--cyan{--tag-bg: rgb(22 78 99 / .3);--tag-fg: #67e8f9}.tag--emerald{--tag-bg: rgb(6 78 59 / .3);--tag-fg: #6ee7b7}.tag--gray{--tag-bg: #374151;--tag-fg: #d1d5db}.tag--amber{--tag-bg: rgb(120 53 15 / .3);--tag-fg: #fcd34d}.tag--green{--tag-bg: rgb(20 83 45 / .3);--tag-fg: #86efac}.tag--purple{--tag-bg: rgb(88 28 135 / .3);--tag-fg: #d8b4fe}.tag--teal{--tag-bg: rgb(19 78 74 / .3);--tag-fg: #5eead4}.tag--violet{--tag-bg: rgb(76 29 149 / .3);--tag-fg: #c4b5fd}.tag--sky{--tag-bg: rgb(12 74 110 / .3);--tag-fg: #7dd3fc}.tag--rose{--tag-bg: rgb(136 19 55 / .3);--tag-fg: #fda4af}}.pill{display:inline-flex;align-items:center;gap:.5rem;background-color:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);transition:box-shadow var(--transition),color var(--transition)}.pill:hover{box-shadow:var(--shadow-xl)}.lang-toggle{position:fixed;top:1rem;right:1rem;z-index:50;padding:.5rem .75rem}.lang-toggle__flag{font-size:1.5rem;line-height:1}.lang-toggle__code{font-size:.875rem;font-weight:500;color:var(--text-body)}.back-link{padding:.5rem 1rem;margin-bottom:2rem;font-weight:500;color:var(--text-body)}.back-link:hover{color:var(--accent-blue)}.back-link__icon{width:1.25rem;height:1.25rem}.social{display:flex;align-items:center;justify-content:center;gap:.75rem}.social__link{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:var(--radius-full);border:1px solid var(--border);background-color:var(--bg-card);color:var(--text-body);box-shadow:var(--shadow-sm);transition:background-color var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition)}.social__link:hover{color:#fff;background-color:var(--social-brand);border-color:var(--social-brand);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.social__icon{width:1.25rem;height:1.25rem;fill:currentColor}.social__link--linkedin{--social-brand: #0a66c2}.social__link--youtube{--social-brand: #ff0000}.social--dark .social__link{background-color:#1f2937;border-color:var(--border-footer);color:var(--text-footer)}.social--dark .social__link:hover{color:#fff}.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background-color:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal.is-open{display:flex}.modal__close{position:absolute;top:1rem;right:1rem;z-index:101;color:#fff;transition:color .2s}.modal__close:hover{color:#d1d5db}.modal__close svg{width:2.5rem;height:2.5rem}.modal__body{max-width:90vw;max-height:90vh;padding:1rem}.modal__img{max-width:100%;max-height:85vh;-o-object-fit:contain;object-fit:contain;border-radius:var(--radius-md);box-shadow:var(--shadow-2xl)}.gallery-item{background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.gallery-item__media{position:relative;aspect-ratio:16 / 9;overflow:hidden}.gallery-item__placeholder{display:none;width:100%;height:100%;align-items:center;justify-content:center;background-color:var(--bg-muted);color:var(--text-muted)}.gallery-item__placeholder svg{width:2.5rem;height:2.5rem}.gallery-item__media.is-image-missing .gallery-item__img{display:none}.gallery-item__media.is-image-missing .gallery-item__placeholder{display:flex}.gallery-item__img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top;cursor:pointer;transition:transform var(--transition)}.gallery-item__img:hover{transform:scale(1.05)}.gallery-item__caption{padding:1rem;font-size:.875rem;color:var(--text-body)}.live-badge{position:absolute;top:.75rem;right:.75rem;z-index:10;display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:var(--radius-full);background-color:var(--accent-green);color:#fff;font-size:.75rem;font-weight:600;box-shadow:var(--shadow-lg);transition:background-color var(--transition)}.live-badge:hover{background-color:var(--accent-green-dark)}.live-badge__icon{width:.875rem;height:.875rem}.profile{display:flex;align-items:center;justify-content:center}.profile__inner{width:100%;max-width:28rem}.profile__frame{aspect-ratio:1 / 1;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-2xl);background-image:linear-gradient(to bottom right,var(--accent-blue),#9333ea)}.profile__img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.profile__fallback{display:none;width:100%;height:100%;align-items:center;justify-content:center;color:#fff;font-size:3.75rem;font-weight:700}.profile__frame.is-image-missing .profile__img{display:none}.profile__frame.is-image-missing .profile__fallback{display:flex}.profile__name{margin-top:1.5rem;font-size:2.25rem;font-weight:700;text-align:center}.profile__role{margin-top:.5rem;font-size:1.25rem;text-align:center;color:var(--text-body)}.profile__social{margin-top:1.25rem}.timeline{display:flex;align-items:center}.timeline__inner{width:100%}.timeline__title{font-size:1.875rem;font-weight:700;margin-bottom:2rem}.timeline__list{display:flex;flex-direction:column;gap:1.5rem}.timeline__item{display:flex;gap:1rem}.timeline__marker{display:flex;flex-direction:column;align-items:center}.timeline__dot{width:1rem;height:1rem;border-radius:var(--radius-full);background-color:var(--dot-color);flex-shrink:0}.timeline__dot--blue{--dot-color: var(--accent-blue)}.timeline__dot--purple{--dot-color: var(--accent-purple)}.timeline__dot--green{--dot-color: var(--accent-green)}.timeline__dot--orange{--dot-color: var(--accent-orange)}.timeline__line{width:2px;height:100%;margin-top:.5rem;background-color:var(--line)}.timeline__body{flex:1;padding-bottom:2rem}.timeline__item:last-child .timeline__body{padding-bottom:0}.timeline__date{font-size:.875rem;color:var(--text-muted)}.timeline__heading{margin-top:.25rem;font-size:1.25rem;font-weight:600}.timeline__link{display:inline-flex;align-items:center;gap:.5rem;transition:color var(--transition)}.timeline__link:hover{color:var(--accent-green)}.timeline__link svg{width:1rem;height:1rem;flex-shrink:0}.timeline__desc{margin-top:.5rem;color:var(--text-body)}.bio__title{font-size:1.875rem;font-weight:700;margin-bottom:1rem}.bio__text{color:var(--text-body);line-height:1.625}.bio__text+.bio__text{margin-top:1rem}.tech-card{background-color:var(--bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:1.5rem}.tech-card__head{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.tech-card__icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;flex-shrink:0;border-radius:var(--radius-lg);color:#fff;background-image:linear-gradient(to bottom right,var(--icon-from),var(--icon-to))}.tech-card__icon svg{width:1.5rem;height:1.5rem}.tech-card__icon--backend{--icon-from: #3b82f6;--icon-to: #1d4ed8}.tech-card__icon--frontend{--icon-from: #facc15;--icon-to: #ca8a04}.tech-card__icon--cloud{--icon-from: #f97316;--icon-to: #c2410c}.tech-card__icon--ai{--icon-from: #a855f7;--icon-to: #db2777}.tech-card__title{font-size:1.25rem;font-weight:700}.project-card{display:block;background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;cursor:pointer;transition:box-shadow var(--transition)}.project-card:hover{box-shadow:var(--shadow-2xl)}.project-card__media{position:relative;height:12rem;overflow:hidden}.project-card__img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:top;object-position:top}.project-card__media.is-image-missing .project-card__img{display:none}.project-card__media--blue.is-image-missing{background-image:linear-gradient(to bottom right,#60a5fa,#2563eb)}.project-card__media--purple.is-image-missing{background-image:linear-gradient(to bottom right,#c084fc,#9333ea)}.project-card__media--green.is-image-missing{background-image:linear-gradient(to bottom right,#4ade80,#16a34a)}.project-card__body{padding:1.5rem}.project-card__title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.project-card__desc{color:var(--text-body)}.project-page__title{font-size:2.25rem;font-weight:700;margin-bottom:1rem}.project-page__link{display:inline-flex;align-items:center;gap:.75rem;transition:color var(--transition)}.project-page__link:hover{color:var(--accent-green)}.project-page__link svg{width:1.5rem;height:1.5rem}.project-page__lead{font-size:1.25rem;color:var(--text-body);margin-bottom:3rem}.project-page__lead--tight{margin-bottom:2rem}.project-section{margin-bottom:4rem}.project-section:last-child{margin-bottom:2rem}.project-section__card{margin-bottom:1.5rem}.project-section__title{font-size:1.5rem;font-weight:700;margin-bottom:1rem}.project-section__desc{color:var(--text-body);line-height:1.625}.footer{margin-top:5rem;background-color:var(--bg-footer);border-top:1px solid var(--border-footer)}.footer__inner{max-width:56rem;margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center}.footer__name{font-size:1.5rem;font-weight:700;color:#fff}.footer__role{margin-top:.25rem;color:var(--text-footer)}.footer__follow{display:flex;flex-direction:column;align-items:center;gap:.75rem}.footer__label{font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-footer-dim)}.footer__bottom{width:100%;padding-top:1.5rem;border-top:1px solid var(--border-footer)}.footer__copy{font-size:.875rem;color:var(--text-footer-dim)}
