:root{--bg:#0a0a0a;--surface:#050505;--surface-alt:#151515;--border:#2c2c2c;--text:#fff;--text-muted:#aeaeae;--text-dim:#858585;--accent:red;--font-sans:"Hanken Grotesk", system-ui, "Segoe UI", Roboto, sans-serif;--font-button:var(--font-sans);--content-width:1100px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--bg);min-height:100svh;margin:0}h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:var(--content-width);max-width:100%;margin:0 auto;padding:0 20px;position:relative}@media (width<=1023px){:root{--content-width:100%}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.navbar{z-index:20;background:#000;justify-content:center;gap:32px;width:fit-content;margin:24px auto 0;padding:12px 28px;animation:.5s both fade-in-up;display:flex;position:sticky;top:24px}.navbar__link{color:#fff9f5;opacity:.7;white-space:nowrap;font-size:16px;transition:opacity .2s,transform .2s;display:inline-block}.navbar__link:hover,.navbar__link--active{opacity:1}.navbar__link:hover{transform:translateY(-1px)}.footer{border-top:1px solid var(--border);margin-top:40px;animation:.5s both fade-in-up}.footer__inner{color:var(--text-muted);justify-content:space-between;align-items:center;padding:40px 20px;font-size:14px;display:flex}.bio-block{flex-direction:column;gap:16px;display:flex}.bio-block__line1{color:var(--text);font-size:30px;font-weight:800}.bio-block__line2{color:var(--accent);font-size:20px;font-weight:600}.link-button{border:1.6px solid var(--text);height:47px;font-family:var(--font-button);color:var(--text);white-space:nowrap;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:22px;font-weight:600;transition:opacity .2s,transform .2s;display:inline-flex}.link-button:hover{opacity:.7;transform:translateY(-2px)}.link-button--small{height:32px;padding:0 14px;font-size:15px}.link-button__arrow{width:14px;height:14px;transition:transform .2s}.link-button:hover .link-button__arrow{transform:translate(3px)}.contact-row{flex-direction:column;align-items:flex-end;gap:12px;display:flex}.contact-row__location{color:var(--text);font-size:20px}.contact-row__actions{align-items:center;gap:16px;display:flex}.contact-row__icon-link{opacity:.85;justify-content:center;align-items:center;width:48px;height:48px;transition:opacity .2s,transform .2s;display:flex}.contact-row__icon-link:hover{opacity:1;transform:translateY(-2px)}.contact-row__icon-link img{width:100%;height:100%}@media (width<=1023px){.contact-row{align-items:flex-start}}.tech-panel{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:12px;padding:20px;display:flex}.tech-panel__label{color:var(--text-dim);font-size:22px;font-weight:500}.tech-panel__row{grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:8px;display:grid}.tech-panel__icon{aspect-ratio:1;background:#d9d9d930;justify-content:center;align-items:center;transition:transform .2s,background .2s;display:flex;position:relative}.tech-panel__icon:hover,.tech-panel__icon:focus-visible{background:#d9d9d94d;transform:translateY(-3px)}.tech-panel__icon img{object-fit:contain;width:60%;height:60%}.tech-panel__tooltip{background:var(--surface-alt);border:1px solid var(--border);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;z-index:10;padding:4px 10px;font-size:18px;font-weight:500;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.tech-panel__tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--surface-alt);position:absolute;top:100%;left:50%;transform:translate(-50%)}.tech-panel__icon:hover .tech-panel__tooltip,.tech-panel__icon:focus-visible .tech-panel__tooltip{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.hero{flex-direction:column;align-items:center;gap:16px;padding:40px 0 0;display:flex}.hero__name{text-align:center;color:var(--text);font-size:128px;font-weight:800;line-height:1;animation:.6s both fade-in-up}.hero__role{color:var(--accent);text-align:center;margin-top:-20px;font-size:32px;font-weight:800;animation:.6s .1s both fade-in-up}.hero__image{aspect-ratio:861/404;border:1px solid var(--border);background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%;max-width:861px;margin-top:50px;position:relative}.hero__image img:first-child{object-fit:cover;opacity:0;width:100%;height:100%}.hero__avatar{width:auto;max-width:90%;height:125%;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}@media (width<=1023px){.hero{padding:24px 0 0}.hero__name{font-size:56px}.hero__role{font-size:22px}}.entry-card{background:var(--surface);border-left:3px solid var(--accent);flex-direction:column;gap:8px;padding:12px 20px 16px 25px;display:flex;position:relative}.entry-card__row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.entry-card__title{color:var(--text);font-size:24px;font-weight:600}.entry-card__meta{text-align:right;color:var(--text-muted);flex-shrink:0;font-size:13px;font-weight:500}.entry-card__description{color:var(--text);font-size:16px;font-weight:300;line-height:1.4}.work-education{border:1px solid var(--border);flex-direction:column;display:flex}.work-education__tabs{display:flex}.work-education__tabs button:first-child{flex:340 1 0}.work-education__tabs button:last-child{flex:281 1 0}.work-education__tab{color:var(--text-dim);background:var(--border);cursor:pointer;outline-offset:-1px;border:none;outline:1px solid #0000;padding:0;font-family:inherit;font-size:26px;font-weight:500;transition:color .2s,background .2s,outline-color .2s}.work-education__tab:not(.work-education__tab--active):hover{color:var(--text-muted);outline-color:var(--text-dim)}.work-education__tab--active{color:var(--text);background:#4b4b4b}.work-education__panel{flex-direction:column;flex:1;gap:16px;min-height:374px;padding:24px;animation:.35s both fade-in-up;display:flex}@media (width<=1023px){.work-education__tab{font-size:22px}}.post-card{background:var(--surface);border-left:3px solid var(--accent);outline:1px solid #0000;flex-direction:column;gap:10px;transition:outline-color .25s;display:flex;position:relative}.post-card:hover{outline-color:var(--text-dim)}.post-card--compact{padding:12px 20px 16px}.post-card--full{padding:20px 32px 24px}.post-card__row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.post-card__title{color:var(--text);font-weight:600}.post-card--compact .post-card__title{font-size:24px}.post-card--full .post-card__title{font-size:36px}.post-card__date{color:var(--text-muted);white-space:nowrap;font-size:13px;font-weight:500}.post-card__description{color:var(--text);font-weight:300;line-height:1.4}.post-card--compact .post-card__description{font-size:16px}.post-card--full .post-card__description{font-size:20px}.recent-posts{border:1px solid var(--border);flex-direction:column;gap:20px;padding:24px;display:flex}.recent-posts__heading{align-items:center;gap:12px;width:fit-content;display:inline-flex}.recent-posts__heading h2{color:var(--text);font-size:32px;font-weight:600}.recent-posts__heading img{width:16px;height:16px;transition:transform .2s}.recent-posts__heading:hover img{transform:translate(4px)}.recent-posts__list{flex-direction:column;gap:20px;display:flex}.tag{height:25px;color:var(--text);white-space:nowrap;background:#0a0a0a;justify-content:center;align-items:center;padding:0 12px;font-size:14px;font-weight:300;transition:background .2s,transform .2s;display:inline-flex}.tag:hover{background:var(--surface-alt);transform:translateY(-1px)}.project-media{width:100%;height:100%;position:relative}.project-media__poster,.project-media__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.project-media__video{opacity:0;transition:opacity .4s}.project-media__video--ready{opacity:1}.project-card{background:var(--surface);border:1px solid var(--border);flex-direction:column;transition:border-color .25s;display:flex;position:relative;overflow:hidden}.project-card__link:after{content:"";position:absolute;inset:0}.project-card__source{z-index:1;position:relative}.project-card:hover{border-color:var(--text-dim)}.project-card__thumbnail{aspect-ratio:993/466;overflow:hidden}.project-card__thumbnail img,.project-card__thumbnail .project-media{object-fit:cover;width:100%;height:100%;transition:transform .4s}.project-card:hover .project-card__thumbnail img,.project-card:hover .project-card__thumbnail .project-media{transform:scale(1.05)}.project-card__body{flex-direction:column;flex:1;gap:12px;padding:20px;display:flex}.project-card__row{justify-content:space-between;align-items:center;gap:12px;display:flex}.project-card__title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:600;overflow:hidden}.project-card__year{color:var(--text-muted);flex-shrink:0;font-size:13px;font-weight:500}.project-card__role{color:var(--text-muted);font-size:13px;font-weight:500}.project-card__description{color:var(--text);font-size:15px;font-weight:300;line-height:1.4}.project-card__tags{flex-wrap:wrap;gap:8px;display:flex}.project-card__actions{margin-top:auto;padding-top:8px}.featured-projects{flex-direction:column;gap:32px;display:flex}.featured-projects__heading{align-items:center;gap:16px;width:fit-content;display:inline-flex}.featured-projects__heading h2{color:var(--text);font-size:40px;font-weight:700}.featured-projects__heading img{width:16px;height:16px;transition:transform .2s}.featured-projects__heading:hover img{transform:translate(4px)}.featured-projects__grid{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}@media (width<=1023px){.featured-projects__grid{grid-template-columns:1fr}.featured-projects__heading h2{font-size:28px}}.home{padding-top:40px;padding-bottom:80px;animation:.6s both fade-in-up}.home-grid{grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);grid-template-areas:"hero hero""bio contact""work tech""posts posts""projects projects";gap:40px;display:grid}.home-grid>.hero{grid-area:hero}.home-grid>.bio-block{grid-area:bio;align-self:start}.home-grid>.contact-row{grid-area:contact;align-self:start}.home-grid>.work-education{grid-area:work;margin-top:60px}.home-grid>.tech-panel{grid-area:tech;margin-top:60px}.home-grid>.recent-posts{grid-area:posts}.home-grid>.featured-projects{grid-area:projects}@media (width<=1023px){.home-grid{grid-template-columns:1fr;grid-template-areas:"hero""bio""contact""work""tech""posts""projects";row-gap:32px}}.title-block{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:60px 40px 40px;animation:.5s both fade-in-up;display:flex}.title-block__title{color:var(--text);font-size:72px;font-weight:800}.title-block__subtitle{color:var(--accent);font-size:20px;font-weight:600}@media (width<=1023px){.title-block{padding:40px 20px 24px}.title-block__title{font-size:44px}.title-block__subtitle{font-size:16px}}.list-page{padding-top:40px;padding-bottom:80px}.list-page__content{z-index:1;position:relative}.list-page__grid{grid-template-columns:repeat(2,1fr);gap:40px;padding:60px 0;display:grid}.list-page__stack{flex-direction:column;gap:26px;padding:60px 0;display:flex}.list-page__grid>*,.list-page__stack>*{opacity:0;animation:.5s both fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.list-page__grid>:first-child,.list-page__stack>:first-child{animation-delay:50ms}.list-page__grid>:nth-child(2),.list-page__stack>:nth-child(2){animation-delay:.1s}.list-page__grid>:nth-child(3),.list-page__stack>:nth-child(3){animation-delay:.15s}.list-page__grid>:nth-child(4),.list-page__stack>:nth-child(4){animation-delay:.2s}.list-page__grid>:nth-child(5),.list-page__stack>:nth-child(5){animation-delay:.25s}.list-page__grid>:nth-child(n+6),.list-page__stack>:nth-child(n+6){animation-delay:.3s}@media (width<=1023px){.list-page__grid{grid-template-columns:1fr;padding:32px 0}.list-page__stack{padding:32px 0}}.back-button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:0;font-family:inherit;font-size:14px;font-weight:500;transition:color .2s;animation:.5s both fade-in-up;display:inline-flex}.back-button:hover{color:var(--text)}.back-button__arrow{width:10px;height:10px;transition:transform .2s;transform:scaleX(-1)}.back-button:hover .back-button__arrow{transform:scaleX(-1)translate(3px)}.markdown{color:var(--text);max-width:760px;font-size:17px;font-weight:300;line-height:1.7}.markdown>:first-child{margin-top:0}.markdown p{margin:20px 0}.markdown h1,.markdown h2,.markdown h3,.markdown h4{color:var(--text);margin:48px 0 16px;font-weight:700;line-height:1.3}.markdown h1{font-size:32px}.markdown h2{font-size:26px}.markdown h3{font-size:21px}.markdown h4{font-size:18px}.markdown a{color:var(--accent);text-underline-offset:2px;text-decoration:underline;transition:opacity .2s}.markdown a:hover{opacity:.75}.markdown strong{font-weight:600}.markdown ul,.markdown ol{flex-direction:column;gap:8px;margin:20px 0;padding-left:24px;display:flex}.markdown li{padding-left:4px}.markdown blockquote{border-left:3px solid var(--accent);color:var(--text-muted);margin:24px 0;padding:4px 20px}.markdown hr{border:none;border-top:1px solid var(--border);margin:40px 0}.markdown code{background:var(--surface-alt);border:1px solid var(--border);padding:2px 6px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.88em}.markdown pre{background:var(--surface-alt);border:1px solid var(--border);margin:24px 0;padding:18px 20px;overflow-x:auto}.markdown pre code{background:0 0;border:none;padding:0}.markdown img{border:1px solid var(--border);width:100%;height:auto;margin:24px 0}.markdown table{border-collapse:collapse;width:100%;margin:24px 0;font-size:15px}.markdown th,.markdown td{border:1px solid var(--border);text-align:left;padding:10px 14px}.markdown th{color:var(--text-muted);font-weight:600}@media (width<=1023px){.markdown{font-size:16px}.markdown h1{font-size:26px}.markdown h2{font-size:22px}.markdown h3{font-size:19px}}.detail-page{max-width:820px;padding-top:40px;padding-bottom:100px}.detail-page__missing{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:20px;padding:100px 0;display:flex}.detail-page__header{border-bottom:1px solid var(--border);padding:28px 0 32px;animation:.5s 50ms both fade-in-up}.detail-page__title{color:var(--text);font-size:48px;font-weight:800;line-height:1.05}.detail-page__lede{color:var(--text-muted);max-width:640px;margin-top:16px;font-size:19px;font-weight:300;line-height:1.5}.detail-page__facts{flex-wrap:wrap;gap:32px;margin-top:28px;display:flex}.detail-page__facts-label{text-transform:uppercase;color:var(--text-dim);margin-bottom:4px;font-size:12px;font-weight:600}.detail-page__facts-value{color:var(--text);font-size:16px;font-weight:500}.detail-page__tags{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.detail-page__actions{margin-top:24px}.detail-page__thumbnail{aspect-ratio:993/466;border:1px solid var(--border);margin-top:40px;animation:.5s .1s both fade-in-up;overflow:hidden}.detail-page__thumbnail img{object-fit:cover;width:100%;height:100%}.detail-page__body{margin-top:40px;animation:.5s .15s both fade-in-up}.detail-page__status{color:var(--text-muted);font-size:15px}.detail-page__next{background:var(--surface);border-left:3px solid var(--accent);outline:1px solid #0000;flex-direction:column;gap:6px;margin-top:64px;padding:24px 28px;transition:outline-color .25s;display:flex}.detail-page__next:hover{outline-color:var(--text-dim)}.detail-page__next-label{text-transform:uppercase;color:var(--text-dim);font-size:13px;font-weight:600}.detail-page__next-title{color:var(--text);font-size:24px;font-weight:600}@media (width<=1023px){.detail-page{padding-top:24px}.detail-page__title{font-size:34px}.detail-page__lede{font-size:17px}}
