body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-main{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:6rem 1.5rem 2rem;font-size:calc(10px + 2vmin);display:flex}.tagline{margin:1.5rem 1.5em;font-size:1.5rem;font-weight:100}.intro{margin-left:.5em;margin-right:.5em;font-family:Reem Kufi,sans-serif;font-size:1.75em;font-weight:600}a,a:visited,a:hover,a:active,.coronavirus{color:inherit;text-decoration:none}.change-mode{cursor:pointer;background:0 0;border:0;padding:0;font-size:1rem;position:absolute;top:88px;right:25px}.portfolio-link{margin:1rem auto}.profile-picture{border-radius:50%;width:8rem}.icons-social i{padding:10px}.footer{flex-direction:column;justify-content:center;font-size:15px;display:flex}.app-nav{z-index:10;color:#fafafa;background:0 0;border:0;justify-content:center;align-items:center;width:100%;padding:.75rem 0;transition:background-color .16s,box-shadow .16s;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%)}.app-nav--scrolled{background:#16191ff5;box-shadow:0 10px 28px #0000002e}.app-nav__links{justify-content:center;gap:1.25rem;width:min(92vw,420px);display:flex}.app-nav__link{min-height:2.25rem;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;padding:.25rem 0;font-size:.82rem;font-weight:650;line-height:1}.app-nav__link:hover,.app-nav__link:focus-visible{border-bottom-color:#ffffff73}.language-switcher{align-items:center;gap:.35rem;display:flex;position:absolute;right:1rem}.language-switcher__button{min-height:2rem;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:.25rem;padding:.15rem .3rem;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.language-switcher__button:hover,.language-switcher__button:focus-visible,.language-switcher__button--active{border-bottom-color:currentColor}.language-switcher__code{letter-spacing:0;font-size:.62rem}.content-page,.experience-page{box-sizing:border-box;max-width:100%;min-height:100vh;padding:7rem 1.25rem 3rem;overflow-x:hidden}.content-hero,.experience-hero,.experience-list{width:min(100%,980px);margin:0 auto}.content-hero,.experience-hero{margin-bottom:2rem}.content-kicker,.experience-kicker{text-transform:uppercase;margin:0 0 .45rem;font-size:.78rem;font-weight:800}.content-hero h1,.experience-hero h1{margin:0;font-size:clamp(2.1rem,7vw,4rem);line-height:1}.content-hero p:last-child,.experience-hero p:last-child{max-width:680px;margin:1rem 0 0;font-size:1rem;line-height:1.7}.experience-list{gap:1rem;display:grid}.experience-card{background:#ffffff14;border:1px solid #ffffff24;border-radius:8px;padding:1.35rem;box-shadow:0 14px 34px #0000001f}.experience-card__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.experience-card__company,.experience-card__period,.experience-card__location{margin:0;font-size:.82rem;font-weight:700}.experience-card__company{text-transform:uppercase}.experience-card h2{margin:.3rem 0 0;font-size:1.3rem;line-height:1.25}.experience-card__period{text-align:right;flex:none}.experience-card__location{opacity:.72;margin-top:.85rem}.experience-card__summary{margin:1rem 0;font-size:.95rem;line-height:1.65}.experience-card__highlights{margin:0;padding-left:1.15rem;font-size:.9rem;line-height:1.6}.experience-card__highlights li+li{margin-top:.4rem}.skill-chips{flex-wrap:wrap;gap:.45rem;margin-top:1.1rem;display:flex}.skill-chip{border-radius:6px;padding:.35rem .55rem;font-size:.75rem;font-weight:700}.skill-chip--react{color:#07556c;background:#d8f3ff}.skill-chip--typescript{color:#123c7c;background:#dce8ff}.skill-chip--backend{color:#225c1b;background:#e4f7df}.skill-chip--angular{color:#8a1026;background:#ffe1e6}.skill-chip--api{color:#5a287c;background:#f2e5ff}.skill-chip--testing{color:#6d4a00;background:#fff0c7}.skill-chip--database{color:#23456f;background:#e5f0ff}.skill-chip--infra{color:#2f3f52;background:#e9edf3}.skill-chip--ui{color:#74324f;background:#ffe7f1}.skill-chip--reactive{color:#6e2f83;background:#f5e1ff}.skill-chip--process{color:#1f5d48;background:#e3f6ef}.skill-chip--soft{color:#71420f;background:#fff1df}.skill-chip--default{color:inherit;background:#ffffff21}.experience-missions{gap:.85rem;margin-top:1.35rem;display:grid}.experience-mission{background:#ffffff0e;border:1px solid #ffffff1a;border-radius:8px;padding:1rem}.experience-mission__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.experience-mission__header h3,.experience-mission__header p,.experience-mission__context{margin:0}.experience-mission__header h3{font-size:1rem;line-height:1.35}.experience-mission__header p{opacity:.75;text-align:right;flex:none;font-size:.75rem;font-weight:750}.experience-mission__context{opacity:.86;margin-top:.75rem;font-size:.88rem;line-height:1.6}.experience-mission .experience-card__highlights{margin-top:.85rem}.admin-page{text-align:left}.toast-stack{z-index:30;gap:.65rem;width:min(92vw,360px);display:grid;position:fixed;top:4.75rem;right:1rem}.toast{color:#fafafa;background:#12151bf5;border:1px solid #ffffff29;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.85rem .9rem;display:flex;box-shadow:0 14px 34px #00000038}.toast p{margin:0;font-size:.82rem;font-weight:700;line-height:1.45}.toast button{color:inherit;cursor:pointer;font:inherit;opacity:.8;background:0 0;border:0;padding:0;font-weight:900;line-height:1}.toast--success{border-color:#b7f7c373}.toast--error{border-color:#ffb4b48c}.toast--info{border-color:#d8f3ff73}.admin-panel,.admin-form,.admin-section{width:min(100%,980px);margin:0 auto}.admin-panel{gap:1.5rem;display:grid}.admin-panel__header{background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.admin-panel__header h2,.admin-section h2,.admin-article h3,.admin-eyebrow{margin:0}.admin-section__header,.admin-form__header,.admin-preview__header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-form__header h2,.admin-preview__header h2{margin:.25rem 0 0}.admin-eyebrow{text-transform:uppercase;opacity:.7;font-size:.75rem;font-weight:800}.admin-form{background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;gap:1rem;padding:1rem;display:grid}.admin-login{max-width:460px}.admin-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.admin-form label{gap:.45rem;font-size:.84rem;font-weight:750;display:grid}.admin-form input,.admin-form select,.admin-form textarea,.media-upload input{box-sizing:border-box;color:#111;width:100%;font:inherit;background:#ffffffeb;border:1px solid #ffffff2e;border-radius:6px;padding:.7rem .75rem;font-size:.9rem}.admin-form textarea{resize:vertical}.editor-tools{background:#ffffff0e;border:1px solid #ffffff1f;border-radius:8px;gap:.75rem;padding:.75rem;display:grid}.editor-tools__buttons,.editor-media-strip{flex-wrap:wrap;gap:.5rem;display:flex}.editor-tools__buttons button{min-height:2rem;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid #ffffff2e;border-radius:6px;padding:0 .7rem;font-size:.76rem;font-weight:800}.editor-tools__buttons button:hover,.editor-tools__buttons button:focus-visible{background:#ffffff1f}.editor-media-strip__item{aspect-ratio:1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:6px;width:4rem;padding:0;overflow:hidden}.editor-media-strip__item img{object-fit:cover;width:100%;height:100%}.editor-tools__hint{opacity:.72;margin:0;font-size:.78rem;font-weight:650}.admin-button{color:#111;cursor:pointer;min-height:2.5rem;font:inherit;background:#fafafa;border:0;border-radius:6px;justify-self:start;padding:0 1rem;font-size:.85rem;font-weight:800}.admin-button:disabled{cursor:not-allowed;opacity:.55}.admin-button--secondary{color:inherit;background:0 0;border:1px solid}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.admin-action{min-height:2rem;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid;border-radius:6px;padding:0 .65rem;font-size:.76rem;font-weight:800}.admin-action--danger{color:#ffb4b4}.admin-message,.admin-empty{margin:0;font-size:.9rem;line-height:1.6}.admin-message--error{color:#ffb4b4}.admin-message--success{color:#b7f7c3}.admin-articles{gap:.65rem;display:grid}.media-library{gap:1rem;display:grid}.media-upload{background:#ffffff0e;border:1px solid #ffffff1f;border-radius:8px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:.75rem;padding:1rem;display:grid}.media-upload label{gap:.45rem;font-size:.84rem;font-weight:750;display:grid}.media-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem;display:grid}.media-card{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;gap:.75rem;padding:.8rem;display:grid}.media-card img{aspect-ratio:16/10;object-fit:cover;background:#0000002e;border-radius:6px;width:100%}.media-card h3,.media-card p{margin:0}.media-card h3{font-size:.92rem;line-height:1.25}.media-card p{opacity:.72;font-size:.78rem;line-height:1.45}.admin-article{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:1rem;padding:.9rem 1rem;display:grid}.admin-article p{opacity:.72;margin:.25rem 0 0;font-size:.82rem}.admin-article span{background:#ffffff21;border-radius:6px;flex:none;padding:.28rem .5rem;font-size:.75rem;font-weight:800}.admin-preview{background:#ffffff12;border:1px solid #ffffff1f;border-radius:8px;gap:1rem;width:min(100%,980px);min-width:0;margin:0 auto;padding:1rem;display:grid}.admin-preview__header p,.admin-preview__excerpt{opacity:.78;margin:.35rem 0 0}.admin-preview__excerpt{font-size:1rem;line-height:1.6}.admin-preview__content{border-top:1px solid #ffffff1f;padding-top:1rem}.blog-list{gap:1rem;width:min(100%,980px);margin:0 auto;display:grid}.blog-card{background:#ffffff14;border:1px solid #ffffff24;border-radius:8px;padding:1.25rem;box-shadow:0 14px 34px #0000001f}.blog-card__meta{opacity:.74;text-transform:uppercase;margin-bottom:.55rem;font-size:.78rem;font-weight:800}.blog-card h2{margin:0;font-size:1.35rem;line-height:1.25}.blog-card p{margin:.85rem 0 0;font-size:.95rem;line-height:1.65}.blog-card__language{opacity:.74;text-transform:uppercase;margin:.55rem 0 0;font-size:.78rem;font-weight:800;line-height:1.4}.blog-card__link{color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;border-bottom:2px solid;margin-top:1rem;padding:0;font-size:.85rem;font-weight:800}.blog-empty{margin:0;font-size:.95rem;line-height:1.6}.blog-empty--error{color:#ffb4b4}.blog-article-page{text-align:left}.blog-back-link{width:min(100%,820px);color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-bottom:2px solid;margin:0 auto 1.25rem;padding:0;font-size:.85rem;font-weight:800;display:block}.blog-article{width:min(100%,820px);min-width:0;margin:0 auto}.blog-article__header{margin-bottom:2rem}.blog-article__header h1{margin:0;font-size:clamp(2rem,7vw,4rem);line-height:1}.blog-article__header time{opacity:.74;text-transform:uppercase;margin-top:1rem;font-size:.82rem;font-weight:800;display:block}.blog-article__header p{margin:1rem 0 0;font-size:1rem;line-height:1.7}.blog-article__content{border-top:1px solid #ffffff1f;padding-top:1.25rem}.markdown-content{overflow-wrap:anywhere;white-space:normal;word-break:normal;min-width:0;max-width:100%;font-size:1rem;line-height:1.8}.markdown-content *{max-width:100%}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin:1.6rem 0 .65rem;line-height:1.2}.markdown-content h1{font-size:2rem}.markdown-content h2{font-size:1.55rem}.markdown-content h3{font-size:1.25rem}.markdown-content p,.markdown-content ul,.markdown-content ol,.markdown-content blockquote,.markdown-content pre,.markdown-content table{overflow-wrap:anywhere;max-width:100%;margin:0 0 1rem}.markdown-content ul,.markdown-content ol{padding-left:1.35rem}.markdown-content li+li{margin-top:.35rem}.markdown-content a{border-bottom:1px solid;font-weight:700}.markdown-content img{object-fit:contain;border-radius:8px;width:auto;max-width:100%;max-height:520px;margin:1.4rem auto;display:block}.markdown-content blockquote{opacity:.82;border-left:3px solid;padding-left:1rem}.markdown-content code{background:#ffffff1f;border-radius:4px;padding:.1rem .3rem;font-size:.92em}.markdown-content pre{white-space:pre-wrap;word-break:break-word;background:#00000038;border-radius:8px;padding:1rem;overflow-x:auto}.markdown-content pre code{white-space:inherit;background:0 0;padding:0}.markdown-content table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.markdown-content th,.markdown-content td{overflow-wrap:anywhere;border:1px solid #ffffff29;padding:.55rem .65rem}@media (width>=576px){html{font-size:14px}}@media (width>=768px){html{font-size:16px}}@media (width>=992px){html{font-size:18px}}@media (width>=1200px){html{font-size:20px}}.daylight .App-main,.daylight .experience-page,.daylight .content-page{color:#fff;background-color:#282c34}.daylight .change-mode:before{color:#ff0;content:"";font-family:"Font Awesome 5 Free";font-weight:400}.daylight .icons-social a{color:#fafafa}.daylight .icons-social a svg path{fill:#fafafa}.nightlight .App-main{color:#000;background-color:#fafafa}.nightlight .app-nav{color:#111}.nightlight .app-nav--scrolled{background:#fafafaf5;box-shadow:0 10px 28px #0000001a}.nightlight .app-nav__link:hover,.nightlight .app-nav__link:focus-visible{border-bottom-color:#00000073}.night .app-nav{color:#111}.night .app-nav--scrolled{background:#fafafaf5;box-shadow:0 10px 28px #0000001a}.night .app-nav__link:hover,.night .app-nav__link:focus-visible{border-bottom-color:#00000073}.nightlight .content-page,.nightlight .experience-page{color:#000;background-color:#fafafa}.nightlight .experience-card,.nightlight .blog-card,.night .blog-card{background:#00000009;border-color:#0000001a;box-shadow:0 14px 34px #00000014}.nightlight .experience-mission{background:#00000006;border-color:#00000014}.nightlight .admin-panel__header,.nightlight .admin-form,.nightlight .admin-article,.nightlight .admin-preview,.nightlight .editor-tools,.nightlight .media-card,.nightlight .media-upload,.night .admin-panel__header,.night .admin-form,.night .admin-article,.night .admin-preview,.night .editor-tools,.night .media-card,.night .media-upload{background:#00000009;border-color:#0000001a}.nightlight .admin-form input,.nightlight .admin-form select,.nightlight .admin-form textarea,.nightlight .media-upload input,.night .admin-form input,.night .admin-form select,.night .admin-form textarea,.night .media-upload input{background:#fff;border-color:#00000024}.nightlight .editor-tools__buttons button,.nightlight .editor-media-strip__item,.night .editor-tools__buttons button,.night .editor-media-strip__item{border-color:#00000024}.nightlight .editor-tools__buttons button:hover,.nightlight .editor-tools__buttons button:focus-visible,.night .editor-tools__buttons button:hover,.night .editor-tools__buttons button:focus-visible{background:#0000000f}.nightlight .admin-button,.night .admin-button{color:#fafafa;background:#111}.nightlight .admin-button--secondary,.night .admin-button--secondary{color:inherit;background:0 0}.nightlight .admin-message--error,.night .admin-message--error,.nightlight .blog-empty--error,.night .blog-empty--error{color:#8a1026}.nightlight .blog-article__content,.night .blog-article__content{border-top-color:#0000001a}.nightlight .admin-message--success,.night .admin-message--success{color:#1f5d48}.nightlight .admin-article span,.night .admin-article span{background:#00000012}.nightlight .admin-action--danger,.night .admin-action--danger{color:#8a1026}.nightlight .admin-preview__content,.night .admin-preview__content{border-top-color:#0000001a}.nightlight .markdown-content code,.night .markdown-content code{background:#00000012}.nightlight .markdown-content pre,.night .markdown-content pre{background:#0000000e}.nightlight .markdown-content th,.nightlight .markdown-content td,.night .markdown-content th,.night .markdown-content td{border-color:#00000024}.nightlight .change-mode:before{color:#000;content:"";font-family:"Font Awesome 5 Free";font-weight:400}.nightlight .icons-social a{color:#000}.nightlight .icons-social a svg path{fill:#000}.day .App-main,.day .experience-page,.day .content-page{color:#fff;background-color:#282c34}.day .icons-social a{color:#fafafa}.day .icons-social a svg path{fill:#fafafa}.night .App-main,.night .experience-page,.night .content-page{color:#000;background-color:#fafafa}.night .icons-social a{color:#000}.night .icons-social a svg path{fill:#000}.gradient{color:#fff;width:100vw;height:100vh;animation:15s infinite Gradient}.gradient .App-main,.gradient .experience-page,.gradient .content-page,.gradient .icons-social a{color:#fff}.gradient .icons-social a svg path{fill:#fff}@keyframes Gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.full-bg-image{-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover}.full-bg-image .App-main,.full-bg-image .experience-page,.full-bg-image .content-page{color:#fff}@media (width<=640px){.app-nav{justify-content:space-between;padding:.65rem .75rem}.app-nav__links{gap:.85rem;width:auto}.app-nav__link{padding:.3rem 0}.language-switcher{position:static}.language-switcher__code{display:none}.change-mode{top:88px}.experience-card__header{flex-direction:column}.experience-card__period{text-align:left}.experience-mission__header{flex-direction:column}.experience-mission__header p{text-align:left}.admin-form__grid,.media-upload,.admin-panel__header,.admin-section__header,.admin-form__header,.admin-preview__header,.admin-article{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.admin-actions{justify-content:flex-start}}.full-bg-image .icons-social a{color:#fff}.full-bg-image .icons-social a svg path{fill:#fff}
