:root{color-scheme:light;--accent: #faeb37;--on-accent: #1a1a17;--bg: #fafaf7;--surface: #fafaf7;--text: #1a1a17;--muted: #66665e;--accent-text: #736a00;--line: #e2e1da;--chip: #efeee8;--console: rgb(26 26 23 / .06);--penguin-ink: #1a1a17;--penguin-paper: #ffffff;--penguin-opacity: .16;--editor-bg: #1a1a17;--editor-line: #2e2e2a;--editor-text: #ededea;--editor-muted: #8f8f86;--content-width: 80vw;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #121211;--surface: #161615;--text: #ededea;--muted: #a3a39b;--accent-text: #faeb37;--line: #2b2b28;--chip: #1e1e1c;--console: rgb(237 237 234 / .06);--penguin-ink: #6b6b64;--penguin-paper: #ededea;--penguin-opacity: .14;--editor-bg: #1b1b19}}:root[data-theme=dark]{color-scheme:dark;--bg: #121211;--surface: #161615;--text: #ededea;--muted: #a3a39b;--accent-text: #faeb37;--line: #2b2b28;--chip: #1e1e1c;--console: rgb(237 237 234 / .06);--penguin-ink: #6b6b64;--penguin-paper: #ededea;--penguin-opacity: .14;--editor-bg: #1b1b19}*{box-sizing:border-box}body{margin:0;min-height:100vh;transition:color .2s}a{color:var(--accent-text)}@media (max-width: 860px){:root{--content-width: 100%}}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.about-intro{display:grid;grid-template-columns:auto 1fr;gap:2.5rem;padding-bottom:3rem}.about-intro__text p{margin:0 0 1rem;font-size:1.05rem}.values{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}.value{padding:1.5rem;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:.75rem;background:var(--surface)}.value p{margin:.5rem 0 0;opacity:.85}.stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:2rem}.stack__title{margin-bottom:.75rem;font-size:.95rem}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.plain-list{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}.plain-list p{margin:.15rem 0 0}.about-more{margin:3rem 0 0;color:var(--muted)}@media (max-width: 700px){.about-intro,.about-columns{grid-template-columns:1fr}}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:2.5rem}.timeline__item{display:grid;grid-template-columns:10rem 1fr;gap:1.5rem}.timeline__period{margin:.2rem 0 0;font-family:var(--mono);font-size:.8rem;color:var(--muted)}.timeline__company{margin:.15rem 0 0;color:var(--muted)}.timeline__meta{font-size:.9rem}.timeline__description{margin:.75rem 0 0;opacity:.85}.timeline__achievements{margin:.75rem 0 1rem;padding-left:1.1rem;display:grid;gap:.4rem}.timeline__achievements li::marker{color:var(--accent-text)}@media (max-width: 600px){.timeline__item{grid-template-columns:1fr;gap:.25rem}}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem}.project-card{position:relative;display:flex;flex-direction:column;padding:1.5rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);transition:border-color .2s,transform .2s}.project-card:hover,.project-card:focus-within{border-color:var(--accent-text);transform:translateY(-2px)}.project-card__meta{display:flex;justify-content:space-between;margin:0 0 .75rem;font-family:var(--mono);font-size:.75rem;color:var(--muted)}.project-card__link{color:inherit;text-decoration:none}.project-card__link:after{content:"";position:absolute;inset:0;border-radius:inherit}.project-card__summary{flex:1;margin:.5rem 0 1rem;opacity:.85}.project-card__cta{margin-top:1.25rem;font-family:var(--mono);font-size:.8rem;color:var(--accent-text)}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.filter{padding:.35rem .9rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;font-family:var(--mono);font-size:.8rem;cursor:pointer;transition:border-color .2s,color .2s,background .2s}.filter:hover{border-color:var(--accent-text);color:var(--accent-text)}.filter[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.back-link{display:inline-block;margin-top:2rem;font-family:var(--mono);font-size:.85rem;color:var(--muted);text-decoration:none}.back-link:hover{color:var(--accent-text)}.project-detail{display:grid;grid-template-columns:1.4fr 1fr;align-items:start;gap:3rem;margin-top:3rem}.project-detail__content{display:grid;gap:2.5rem}.project-detail__content p{margin:0;font-size:1.05rem}.project-detail__aside{position:sticky;top:5rem}.feature-list{margin:0;padding-left:1.1rem;display:grid;gap:.5rem}.feature-list li::marker{color:var(--accent-text)}.pager{display:flex;justify-content:space-between;gap:1rem;margin-top:4rem;padding:2rem 0 4rem;border-top:1px solid var(--line)}.pager__link{display:grid;gap:.25rem;color:var(--text);text-decoration:none}.pager__link:hover{color:var(--accent-text)}.pager__link--next{text-align:right}.pager__label{font-family:var(--mono);font-size:.8rem;color:var(--muted)}@media (max-width: 860px){.project-detail{grid-template-columns:1fr}.project-detail__aside{position:static}}@media (prefers-reduced-motion: reduce){.project-card:hover,.project-card:focus-within{transform:none}}.cert-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem}.cert-card{display:flex;flex-direction:column;gap:.75rem;padding:1.5rem;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:.75rem;background:var(--surface)}.cert-card__meta{display:flex;justify-content:space-between;gap:1rem;margin:0;font-family:var(--mono);font-size:.75rem;color:var(--muted)}.cert-card__link{margin-top:auto;padding-top:.5rem;font-family:var(--mono);font-size:.8rem;color:var(--accent-text);text-decoration:none}.cert-card__link:hover{text-decoration:underline}.hero{min-height:calc(100vh - 4rem);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:3rem;padding:3rem 0;animation:fade-in .8s ease-out both}.hero__identity{display:flex;align-items:center;gap:1.75rem}.hero__identity .avatar{flex-shrink:0;margin:0}.hero__identity .badge{margin:.9rem 0 0}.name{margin:0;font-size:clamp(2rem,3.4vw,3.25rem);font-weight:600;line-height:1.15;letter-spacing:-.02em}.role{margin:.5rem 0 0;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.95rem}.bio{margin:2rem 0 0;font-size:1.05rem;opacity:.85}.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.home-about{display:grid;gap:1.5rem}.home-about__text{margin:0;font-size:1.1rem}.home-split{display:grid;grid-template-columns:1.3fr 1fr;gap:3rem}.home-certs{display:grid;gap:.75rem}.home-certs .cert-card{padding:1rem 1.25rem;gap:.4rem}.home-certs .cert-card__name{font-size:1rem}.home-hobbies{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.home-hobbies li{display:flex;align-items:center;gap:.9rem}.home-hobbies__glyph{border:1px solid var(--editor-line);display:inline-grid;place-items:center;min-width:2.5rem;height:2.5rem;padding:0 .5rem;border-radius:.5rem;background:var(--editor-bg);color:var(--accent);font-family:var(--mono);font-size:.85rem}.home-contact{display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:3rem;padding-bottom:5rem}.home-contact__text{margin:0 0 1.5rem;font-size:1.35rem;font-weight:300}@media (max-width: 860px){.hero,.home-split,.home-contact{grid-template-columns:1fr;gap:2.5rem}.hero{min-height:auto;padding-top:2rem}}@media (max-width: 600px){.hero__identity{gap:1.1rem}.hero__identity .avatar{width:4.75rem;height:4.75rem;font-size:1.4rem}.hero__identity .role{font-size:.78rem;letter-spacing:.04em}.hero__identity .badge{padding:.25rem .7rem;font-size:.7rem;white-space:nowrap}}@media (prefers-reduced-motion: reduce){.hero{animation:none}}.hobby-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}.hobby-card{padding:1.5rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface)}.hobby-card__glyph{border:1px solid var(--editor-line);display:inline-grid;place-items:center;min-width:2.75rem;height:2.75rem;margin-bottom:1rem;padding:0 .6rem;border-radius:.6rem;background:var(--editor-bg);color:var(--accent);font-family:var(--mono);font-weight:500}.hobby-card p{margin:.5rem 0 0;opacity:.85}.contact-page{display:grid;grid-template-columns:1fr 1.1fr;align-items:start;gap:3rem;padding-bottom:4rem}.contact-form{display:grid;gap:1.25rem}.contact-form label{display:grid;gap:.4rem}.contact-form label span{font-family:var(--mono);font-size:.8rem;color:var(--muted)}.contact-form input,.contact-form textarea{padding:.75rem 1rem;border:1px solid var(--line);border-radius:.6rem;background:var(--surface);color:var(--text);font:inherit;resize:vertical;transition:border-color .2s}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent-text);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}.contact-form .button{justify-self:start;cursor:pointer;font:inherit;font-weight:500}.contact-form__hint{margin:0;font-size:.85rem;color:var(--muted)}.contact-page__aside{display:grid;gap:1.25rem}.contact-page__aside p{margin:0}@media (max-width: 860px){.contact-page{grid-template-columns:1fr}}.console-bg{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none;display:flex;align-items:flex-end;padding:2rem clamp(1rem,3vw,2.5rem);font-family:var(--mono);font-size:clamp(.7rem,.9vw,.95rem);line-height:1.7;color:var(--console);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%,#000 85%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 35%,#000 85%,transparent)}.console-bg__lines{width:100%}.console-bg__lines p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.console-bg__prompt{color:color-mix(in srgb,var(--accent-text) 30%,transparent)}.console-bg__cursor{display:inline-block;width:.55em;height:1.1em;vertical-align:text-bottom;background:color-mix(in srgb,var(--accent-text) 30%,transparent);animation:blink 1s steps(1) infinite}.penguin{position:fixed;right:clamp(.5rem,3vw,3rem);bottom:.5rem;z-index:-1;width:clamp(9rem,17vw,15rem);opacity:var(--penguin-opacity);pointer-events:none}.penguin svg{display:block;width:100%;height:auto;overflow:visible}.penguin__ink{fill:var(--penguin-ink)}.penguin__paper{fill:var(--penguin-paper)}.penguin__stroke{fill:none;stroke:var(--penguin-ink);stroke-width:14;stroke-linecap:round;stroke-linejoin:round}.penguin__paper.penguin__stroke{fill:var(--penguin-paper)}.penguin__stroke--thin{stroke-width:8}.penguin__shine{fill:none;stroke:var(--penguin-paper);stroke-width:8;stroke-linecap:round}.penguin__beak{fill:var(--accent);stroke:var(--penguin-ink);stroke-width:10;stroke-linejoin:round}.penguin__logo{fill:var(--accent);font-family:var(--mono);font-size:190px;font-weight:700;letter-spacing:30px}.penguin__eyes{transform-box:fill-box;transform-origin:center;animation:blink-eyes 5s infinite}.penguin__flipper{animation:typing .45s ease-in-out infinite alternate}.penguin__flipper--right{animation-delay:.22s}.penguin__glyph{fill:var(--accent-text);font-family:var(--mono);font-size:64px;font-weight:500;opacity:0;animation:float-code 6s ease-in-out infinite}.penguin__glyph--2{animation-delay:2s}.penguin__glyph--3{animation-delay:4s}.bio,.page-header__intro,.home-about__text,.home-contact__text,.about-intro__text p,.value p,.timeline__description,.timeline__achievements li,.project-card__summary,.project-detail__content p,.feature-list li,.hobby-card p{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.logo{font-family:var(--mono);font-weight:500;letter-spacing:.02em;color:var(--text)}.logo__brace{color:var(--accent-text)}.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;width:var(--content-width);max-width:100%;margin:0 auto;padding:1rem 1.5rem;background:color-mix(in srgb,var(--bg) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav__brand{font-size:1.1rem;text-decoration:none}.nav__links{display:flex;gap:1.25rem}.nav__links a{position:relative;color:var(--muted);font-size:.9rem;text-decoration:none;white-space:nowrap;transition:color .2s}.nav__links a:hover,.nav__links a:focus-visible{color:var(--accent-text)}.nav__links a.active{color:var(--text)}.nav__links a.active:after{content:"";position:absolute;left:0;right:0;bottom:-.3rem;height:2px;border-radius:2px;background:var(--accent)}.nav__actions{display:flex;align-items:center;gap:.5rem}.theme-toggle,.nav__menu-button{display:inline-grid;place-items:center;height:2.25rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .2s,color .2s}.theme-toggle{width:2.25rem;padding:0}.theme-toggle svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-toggle:hover,.nav__menu-button:hover{border-color:var(--accent-text);color:var(--accent-text)}.nav__menu-button{display:none;padding:0 .9rem;font-family:var(--mono);font-size:.8rem}.page{width:var(--content-width);max-width:100%;margin:0 auto;padding:0 1.5rem}.page-header{padding:3.5rem 0 2.5rem;animation:fade-in .6s ease-out both}.page-header__path{margin:0 0 .75rem;font-family:var(--mono);font-size:.85rem;color:var(--muted)}.page-header__prompt{color:var(--accent-text)}.page-header__title{margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:600;line-height:1.15;letter-spacing:-.02em}.page-header__intro{margin:1rem 0 0;font-size:1.1rem;color:var(--muted)}.section{padding:4rem 0;border-top:1px solid var(--line)}.section--flush{padding-top:0;border-top:0}.section-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:2rem}.section-header__title{margin:0;font-family:var(--mono);font-size:.9rem;font-weight:500;color:var(--text)}.section-header__slash{color:var(--accent-text)}.section-header__link{font-family:var(--mono);font-size:.8rem;color:var(--muted);text-decoration:none;white-space:nowrap}.section-header__link:hover{color:var(--accent-text)}h3{margin:0;font-size:1.1rem;font-weight:500}.avatar{width:6.5rem;height:6.5rem;border-radius:50%;object-fit:cover;border:1px solid var(--line);margin-bottom:1.5rem}.avatar--initials{display:grid;place-items:center;font-size:1.9rem;font-weight:300;letter-spacing:.05em;color:var(--accent-text);background:var(--surface)}.badge{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 1rem;padding:.3rem .85rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.8rem;color:var(--muted)}.badge__dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.button{display:inline-block;padding:.6rem 1.4rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:.95rem;text-decoration:none;transition:border-color .2s,background .2s,color .2s}.button:hover,.button:focus-visible{border-color:var(--accent-text);color:var(--accent-text)}.button--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:500}.button--primary:hover,.button--primary:focus-visible{background:var(--text);border-color:var(--text);color:var(--bg)}.stats{display:flex;flex-wrap:wrap;gap:2.5rem;margin:2.5rem 0 0}.stats__item{display:flex;flex-direction:column-reverse}.stats dd{margin:0;font-size:1.75rem;font-weight:500;line-height:1.2}.stats dt{font-size:.8rem;color:var(--muted)}.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}.tags li{padding:.2rem .7rem;border-radius:999px;background:var(--chip);font-family:var(--mono);font-size:.75rem;color:var(--muted)}.editor{margin:0;border:1px solid var(--editor-line);border-radius:1rem;background:var(--editor-bg);color:var(--editor-text);font-family:var(--mono);box-shadow:0 24px 60px -30px #00000073;overflow:hidden}.editor__bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--editor-line)}.editor__dots{display:flex;gap:.4rem}.editor__dots span{width:.65rem;height:.65rem;border-radius:50%;background:var(--editor-line)}.editor__dots span:first-child{background:var(--accent)}.editor__file{font-size:.8rem;color:var(--editor-muted)}.editor__body{padding:1.5rem 1.5rem 1.75rem;font-size:.9rem}.code__declaration{margin:0 0 1.5rem}.code__keyword{color:var(--accent)}.code__punct{color:var(--editor-muted)}.code__object{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem}.code__brace{font-family:Poppins,sans-serif;font-weight:200;font-size:clamp(6rem,11vw,9rem);line-height:1;color:var(--accent)}.code__entries{margin:0;display:grid;gap:.6rem}.code__entry{display:flex;flex-wrap:wrap;column-gap:.6rem}.code__key{color:var(--editor-muted)}.code__entry dd{margin:0;min-width:0;overflow-wrap:anywhere}.code__string{color:var(--editor-text)}.code__bool{color:var(--accent)}.code__link{text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s}.code__link:hover,.code__link:focus-visible{border-color:var(--accent)}.code__link:hover .code__string,.code__link:focus-visible .code__string{color:var(--accent)}.not-found{display:grid;justify-items:start;gap:2rem;max-width:40rem;padding:5rem 0}.not-found .editor{width:100%}.not-found__body p{margin:0 0 .4rem}.not-found__code{font-size:3rem;color:var(--accent)}.footer{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:var(--content-width);max-width:100%;margin:0 auto;padding:2rem 1.5rem 3rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}@media (max-width: 960px){.nav__menu-button{display:inline-grid}.nav__links{display:none;position:absolute;top:100%;left:1rem;right:1rem;flex-direction:column;gap:0;padding:.5rem;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);box-shadow:0 20px 40px -24px #0006}.nav__links--open{display:flex}.nav__links a{padding:.75rem 1rem;border-radius:.5rem;font-size:1rem}.nav__links a.active{background:var(--chip)}.nav__links a.active:after{left:0;right:auto;top:.75rem;bottom:.75rem;width:3px;height:auto}}@media (max-width: 600px){.editor__body{padding:1.25rem 1rem 1.5rem;font-size:.8rem}.code__object{gap:.4rem}.stats{gap:1.5rem}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes typing{to{transform:translateY(-12px)}}@keyframes blink-eyes{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes float-code{0%{opacity:0;transform:translateY(40px)}30%,60%{opacity:1}to{opacity:0;transform:translateY(-80px)}}@media (prefers-reduced-motion: reduce){.page-header,.console-bg__cursor,.penguin__flipper,.penguin__eyes{animation:none}.penguin__glyph{animation:none;opacity:1}}
