:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#020202;--color-background-elevated:#080808;--color-text:#f2efe8;--color-text-muted:#a8a39a;--color-text-dim:#6e6a63;--color-line:#f2efe824;--color-line-strong:#f2efe847;--color-overlay:#020202d1;--font-mono:"IBM Plex Mono", "SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--page-inline-padding:clamp(1.25rem, 4vw, 3.5rem);--home-inline-padding:clamp(2rem, 6vw, 5rem);--home-right-inset:clamp(4rem, 12vw, 10rem);--page-block-padding:clamp(1rem, 3vw, 2.25rem);--page-gap:clamp(3rem, 12vh, 8rem);--measure-wide:78rem;--measure-content:68rem;--measure-copy:46rem;--measure-reading:40rem;--nav-gap:clamp(.75rem, 1.2vw, 1.25rem);--type-micro:.72rem;--type-ui:.9rem;--type-body:1rem;--type-body-large:1.125rem;--type-heading-sm:clamp(1.4rem, 1.1rem + 1vw, 2rem);--type-heading:clamp(2.3rem, 1.8rem + 2.2vw, 4.5rem);--motion-fast:.12s;--motion-base:.18s;--motion-slow:.32s;--ease-crisp:cubic-bezier(.2, .8, .2, 1);--ease-fade:cubic-bezier(.33, 0, .2, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--color-background);color:var(--color-text);font-family:var(--font-mono);text-rendering:optimizelegibility;scroll-behavior:smooth;height:100%;font-size:16px;overflow:hidden}body{background:var(--color-background);height:100%;color:var(--color-text);margin:0;overflow:hidden}body,#root{height:100%;overflow:hidden}a{color:inherit;text-decoration:none}a:hover,a:focus-visible{color:var(--color-text)}p{max-width:var(--measure-copy);color:var(--color-text-muted);margin:0;line-height:1.7}h2,h3{color:var(--color-text);margin:0;font-weight:400}h1{font-size:var(--type-heading);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:400}section{width:min(100%, var(--measure-wide))}ul{color:var(--color-text-muted);margin:0;padding-left:1.1rem;line-height:1.8}.page-frame{gap:var(--page-gap);height:100%;padding:var(--page-block-padding) var(--page-inline-padding);flex-direction:column;transition:padding .55s cubic-bezier(.16,1,.32,1),gap .55s cubic-bezier(.16,1,.32,1);display:flex;overflow:hidden auto}.page-frame--home{gap:0;padding:0;overflow:hidden}.page-frame__header{z-index:10;width:100%;position:relative}.page-frame__header-inner{will-change:transform, opacity;backface-visibility:hidden;justify-content:space-between;align-items:flex-start;gap:2rem;width:100%;display:flex}.page-frame__content{flex:1;justify-content:center;align-items:stretch;min-height:0;display:flex}.page-frame__footer{justify-content:center;width:100%;display:flex}.page-frame--home .page-frame__footer{display:none}.site-footer{width:min(100%, var(--measure-wide));border-top:1px solid var(--color-line);color:var(--color-text-dim);font-size:var(--type-micro);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem 2rem;padding-top:1.25rem;display:flex}.site-footer__status{color:var(--color-text-dim)}.route-outlet{flex-direction:column;flex:1;align-self:stretch;width:100%;min-height:0;animation:.62s cubic-bezier(.16,1,.32,1) both route-outlet-in;display:flex}@keyframes route-outlet-in{0%{opacity:0;transform:translateY(.85rem)}55%{opacity:1}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.route-outlet{animation:none}.page-frame{transition:none}.page-frame--home .page-frame__header{animation:none}.page-frame--home .page-frame__content{transition:none}}.page-frame__identity{min-width:0}.page-frame__identity-mark{color:var(--color-text-muted);font-size:var(--type-ui);letter-spacing:.08em}.page-frame__identity-link{align-items:center;display:inline-flex}.page-frame__identity-link:hover .page-frame__identity-mark,.page-frame__identity-link:focus-visible .page-frame__identity-mark{color:var(--color-text)}.page-frame__nav{justify-content:flex-end;min-width:0;display:flex}.page-frame__spacer{display:none}.bracket-nav__list{gap:var(--nav-gap);flex-wrap:wrap;max-width:100%;margin:0;padding:0;list-style:none;display:flex}.bracket-nav__toggle{color:var(--color-text-muted);font-family:inherit;font-size:var(--type-ui);letter-spacing:.04em;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;padding:0;display:none}.bracket-nav__toggle:hover,.bracket-nav__toggle:focus-visible{color:var(--color-text);border-bottom-color:var(--color-text);outline:none}.bracket-nav__link{color:var(--color-text-muted);font-size:var(--type-ui);letter-spacing:.04em;transition:color var(--motion-fast) var(--ease-crisp), border-color var(--motion-fast) var(--ease-crisp), transform var(--motion-fast) var(--ease-crisp);border-bottom:1px solid #0000;align-items:center;padding-bottom:.2rem;display:inline-flex}.bracket-nav__link[data-route-active=true]{color:var(--color-text);border-bottom-color:var(--color-line-strong)}.bracket-nav__link[data-highlighted=true]{color:var(--color-text);transform:translateY(-1px)}.bracket-nav__link:focus-visible{color:var(--color-text);border-bottom-color:var(--color-text);outline:none}.bracket-nav__link:hover,.bracket-nav__link:focus-visible{color:var(--color-text)}.home-page{background:var(--color-background);flex:1;align-self:stretch;place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:hidden}.home-page__center{z-index:1;place-items:center;width:100%;height:100%;display:grid;position:relative}.ambient-canvas{opacity:.9;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.home-boot{z-index:100;background:var(--color-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;display:grid;position:absolute;inset:0}.home-boot__label{color:var(--color-text);font-size:var(--type-ui)}.home-boot__cursor{background:var(--color-text);width:.55rem;height:1rem;margin-left:.5rem;animation:.85s step-end infinite home-boot-blink;display:inline-block}.home-onboarding{z-index:100;background:var(--color-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;display:grid;position:fixed;inset:0}.home-onboarding__content{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;padding:2rem;display:flex}.home-onboarding__title{color:var(--color-text);font-size:var(--type-ui);letter-spacing:.08em;margin:0}.home-onboarding__copy{color:var(--color-text-muted);font-size:var(--type-ui);margin:0;line-height:1.7}.home-onboarding__animation{aspect-ratio:260/150;width:min(260px,88vw);height:auto;overflow:visible}.home-onboarding__button{color:var(--color-text-muted);cursor:pointer;font-size:var(--type-ui);letter-spacing:.08em;background:0 0;border:none;padding:.25rem .5rem;transition:color .15s}.home-onboarding__button:hover:not(:disabled){color:var(--color-text)}.home-onboarding__button:disabled{cursor:default;opacity:.5}.demo-hand{color:#f2efe8e0;filter:drop-shadow(0 3px 18px #00000073);animation:4s infinite demo-hand-move;transform:translate(48px,122px)}.demo-bone{stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.demo-bone--palm{opacity:.38;stroke-width:1.35px}.demo-bone--finger{opacity:.82;stroke-width:1.45px}.demo-bone--index{opacity:1;stroke-width:1.95px}.demo-hand .demo-joint{fill:currentColor;opacity:.82}.demo-hand .demo-joint--mcp{opacity:.95}.demo-hand .demo-joint--tip,.demo-hand .demo-joint--wrist{opacity:1}.demo-hand .demo-cursor-ring,.demo-hand .demo-dwell-arc{fill:none}.demo-cursor-ring{stroke:currentColor;stroke-width:1px;animation:4s infinite demo-cursor-ring}.demo-dwell-arc{stroke:currentColor;stroke-dasharray:100;stroke-dashoffset:100px;stroke-linecap:round;stroke-width:2px;animation:4s infinite demo-dwell-arc}.demo-target-wrap{transform-box:fill-box;transform-origin:50%;animation:4s infinite demo-target-wrap}.demo-target-chip{fill:#f2efe80d;stroke:#f2efe838;stroke-width:1px;animation:4s infinite demo-target-chip}.demo-target{fill:var(--color-text-muted);letter-spacing:.06em;paint-order:stroke fill;font-family:inherit;font-size:12px;animation:4s infinite demo-target-text}@keyframes demo-hand-move{0%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:translate(48px,122px)rotate(-2deg)}28%{animation-timing-function:linear;transform:translate(158px,46px)rotate(0)}62%{animation-timing-function:cubic-bezier(.55,0,.88,.45);transform:translate(158px,46px)rotate(0)}82%{animation-timing-function:cubic-bezier(.22,1,.36,1);transform:translate(72px,92px)rotate(-4deg)}to{transform:translate(48px,122px)rotate(-2deg)}}@keyframes demo-cursor-ring{0%,22%{opacity:.42}30%,58%{opacity:.72}66%,to{opacity:.42}}@keyframes demo-dwell-arc{0%,28%{stroke-dashoffset:100px;opacity:.55;stroke-width:1.85px;animation-timing-function:linear}42%{stroke-dashoffset:48px;opacity:.88;stroke-width:2.1px}54%{stroke-dashoffset:0;opacity:1;stroke-width:2.25px}62%,to{stroke-dashoffset:100px;opacity:.55;stroke-width:1.85px}}@keyframes demo-target-text{0%,52%{fill:var(--color-text-muted);opacity:.65}60%,68%{fill:var(--color-text);opacity:1}78%,to{fill:var(--color-text-muted);opacity:.65}}@keyframes demo-target-wrap{0%,52%{transform:scale(1)}60%,68%{transform:scale(1.03)}78%,to{transform:scale(1)}}@keyframes demo-target-chip{0%,52%{stroke:#f2efe838;fill:#f2efe80d}60%,68%{stroke:#f2efe873;fill:#f2efe817}78%,to{stroke:#f2efe838;fill:#f2efe80d}}@media (prefers-reduced-motion:reduce){.demo-hand,.demo-cursor-ring,.demo-dwell-arc,.demo-target,.demo-target-wrap,.demo-target-chip{animation:none}.demo-hand{transform:translate(158px,46px)rotate(0)}.demo-cursor-ring{opacity:.6}.demo-dwell-arc{stroke-dashoffset:0;opacity:.9;stroke-width:2px}.demo-target{fill:var(--color-text);opacity:1}.demo-target-wrap{transform:none}}.hand-overlay{color:#f2efe8d9;z-index:1000}.content-page{width:min(100%, var(--measure-content));gap:clamp(2rem,6vh,4rem);display:grid}.mono-list-page{--bg:var(--color-background);--text:var(--color-text);--mid:var(--color-text-muted);--dim:var(--color-text-dim);--border:var(--color-line);--font:var(--font-mono);--fs-base:var(--type-ui);--fs-meta:var(--type-micro);--fs-desc:var(--type-micro);--fs-long:var(--type-ui);width:min(100%, var(--measure-wide));font-family:var(--font);opacity:0;background:0 0;align-self:flex-start;padding:0;transition:opacity .35s,transform .35s;transform:translateY(10px)}.mono-list-page--mounted{opacity:1;transform:none}.mono-list-page__header{margin-bottom:2.5rem}.mono-list-page__label{color:var(--dim);font-size:var(--fs-meta);letter-spacing:.1em;text-transform:lowercase;max-width:none;margin:0 0 .5rem}.mono-list-page__title{font-size:var(--type-heading-sm);color:var(--text);letter-spacing:.03em;text-transform:uppercase;margin:0;font-weight:400}.mono-list{display:block}.mono-list__row-wrap{border-top:1px solid var(--border)}.mono-list__row{width:100%;color:inherit;text-align:left;cursor:default;background:0 0;border:none;grid-template-columns:2.5rem 1fr auto;gap:2rem;padding:1.25rem 0;display:grid}a.mono-list__row,button.mono-list__row{cursor:pointer}.mono-list__row:focus-visible{outline:1px solid var(--dim);outline-offset:4px}.mono-list__index,.mono-list__meta{font-size:var(--fs-meta);color:var(--dim);letter-spacing:.06em;white-space:nowrap}.contact-row{grid-template-columns:6rem minmax(0,1fr);gap:2.5rem}.contact-row__value{font-size:var(--fs-base);color:var(--mid);min-width:0}.mono-project-row__title,.mono-writing-row__title{font-size:var(--fs-base);color:var(--mid);align-items:baseline;min-width:0;transition:padding .2s,color .2s;display:inline-flex}.mono-project-row__summary{color:var(--dim);font-size:var(--fs-desc);white-space:nowrap;text-overflow:ellipsis;margin-left:1.5rem;overflow:hidden}.mono-list__row--active .mono-project-row__title,.mono-list__row--active .mono-writing-row__title{color:var(--text)}.mono-project-row.mono-list__row--active .mono-project-row__title{padding-left:.75rem}.mono-writing-row.mono-list__row--active .mono-writing-row__title{padding-left:.5rem;transition:padding .18s,color .18s}.mono-list__row-wrap--expanded .mono-project-row__summary{display:none}.mono-project-row__panel{opacity:0;max-height:0;padding-bottom:1.75rem;padding-left:2.5rem;transition:max-height .35s,opacity .25s;overflow:hidden}.mono-project-row__panel--open{opacity:1;max-height:200px}.mono-project-row__panel-inner{gap:1rem;display:grid}.mono-project-row__long{font-size:var(--fs-long);color:var(--mid);max-width:560px;margin:0;line-height:1.7}.mono-project-row__tags{font-size:var(--fs-meta);color:var(--dim);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;align-items:baseline;gap:.35rem;display:inline-flex}.mono-project-row__repo{color:var(--mid);text-transform:none}.mono-project-row__repo:hover,.mono-project-row__repo:focus-visible{color:var(--text)}.mono-list-page__hint{font-size:var(--fs-meta);color:var(--dim);letter-spacing:.08em;text-transform:lowercase;max-width:none;margin-top:2rem}@media (prefers-reduced-motion:reduce){.mono-list-page{opacity:1;transition:none;transform:none}.mono-project-row__panel{transition:none}}.page-frame--home .page-frame__header{width:min(calc(100% - (var(--home-inline-padding) * 2)), var(--measure-wide));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.page-frame--home .page-frame__header-inner{pointer-events:none;grid-template-columns:auto minmax(0,1fr);justify-content:stretch;align-items:center;column-gap:clamp(1.25rem,3vw,3rem);display:grid}@keyframes home-shell-header-in{0%{opacity:.5;transform:translate(-50%,calc(.65rem - 50%))}to{opacity:1;transform:translate(-50%,-50%)}}.page-frame--home .page-frame__identity,.page-frame--home .page-frame__nav{pointer-events:auto}.page-frame--home .page-frame__nav{justify-content:flex-end;justify-self:stretch;width:100%;max-width:100%}.page-frame--home .page-frame__spacer{display:none}.page-frame--home .page-frame__content{height:100vh;transition:height .45s cubic-bezier(.16,1,.32,1)}.page-frame--home .bracket-nav{width:100%;max-width:100%}.page-frame--home .bracket-nav__list{justify-content:flex-end;width:100%}.page-intro{gap:.9rem;display:grid}.page-intro--detail{border-bottom:1px solid var(--color-line);padding-bottom:1rem}.page-intro__eyebrow{color:var(--color-text-dim);font-size:var(--type-micro);letter-spacing:.08em;text-transform:uppercase}.content-list{gap:1rem;display:grid}.content-card{border-top:1px solid var(--color-line);gap:.8rem;padding:1rem 0;display:grid}.content-card__meta{color:var(--color-text-dim);font-size:var(--type-micro);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;gap:1rem;display:flex}.content-card__title{font-size:var(--type-heading-sm);letter-spacing:.03em}.project-tile-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,15.5rem),1fr));gap:1rem;display:grid}.project-tile-wrap{margin:0}.project-tile{box-sizing:border-box;border:1px solid var(--color-line);height:100%;min-height:10.5rem;color:inherit;text-align:left;background:#f2efe805;border-radius:2px;flex-direction:column;gap:.65rem;padding:1.1rem 1.15rem;text-decoration:none;transition:border-color .16s,background-color .16s,color .16s;display:flex}.project-tile:hover{background:#f2efe80d;border-color:#f2efe859}.project-tile:focus-visible{outline:1px solid var(--color-text-muted);outline-offset:2px}.project-tile__meta{color:var(--color-text-dim);font-size:var(--type-micro);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;gap:.65rem 1rem;display:flex}.project-tile__title{font-size:var(--type-heading-sm);letter-spacing:.03em;margin:0;line-height:1.25}.project-tile__summary{color:var(--color-text-muted);font-size:var(--type-ui);flex:1;margin:0;line-height:1.55}.project-tile__cta{color:var(--color-text-dim);font-size:var(--type-micro);letter-spacing:.06em;margin-top:auto}.project-tile:hover .project-tile__cta{color:var(--color-text-muted)}.detail-layout{grid-template-columns:minmax(10rem, 14rem) minmax(0, var(--measure-copy));gap:clamp(1.5rem,4vw,3rem);display:grid}.detail-layout--reading{grid-template-columns:minmax(10rem, 12rem) minmax(0, var(--measure-reading))}.detail-meta{color:var(--color-text-dim);font-size:var(--type-micro);letter-spacing:.05em;text-transform:uppercase;align-content:start;gap:.7rem;display:grid}.markdown-body{gap:1.2rem;display:grid}.markdown-body h1,.markdown-body h2,.markdown-body h3{text-transform:none;letter-spacing:.02em}.markdown-body p,.markdown-body li{max-width:none;color:var(--color-text-muted)}.markdown-body a{text-underline-offset:.2rem;text-decoration:underline}.markdown-body img{max-width:100%;height:auto}.markdown-body pre{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.markdown-body code{overflow-wrap:anywhere;word-break:break-word}.markdown-body--reading p,.markdown-body--reading li{font-size:var(--type-body-large);line-height:1.9}.resume-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.resume-panel,.contact-actions{border:1px solid var(--color-line);background:#ffffff05;gap:.9rem;padding:1.25rem;display:grid}.action-link{width:fit-content;color:var(--color-text);border-bottom:1px solid var(--color-line-strong);padding-bottom:.2rem;display:inline-flex}.action-link:hover,.action-link:focus-visible{border-bottom-color:var(--color-text)}@keyframes home-boot-blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (width<=640px){.page-frame{gap:clamp(3rem,12vh,6rem)}.page-frame__header-inner{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.85rem}.page-frame__nav{justify-content:flex-start}.bracket-nav__list{flex-flow:wrap;gap:.65rem 1rem}.page-frame--default .page-frame__header-inner{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}.page-frame--default .page-frame__nav{flex:none;position:relative}.bracket-nav[data-collapsible=true] .bracket-nav__toggle{align-items:center;padding:.25rem 0;display:inline-flex}.bracket-nav[data-collapsible=true] .bracket-nav__list{display:none}.bracket-nav[data-collapsible=true][data-open=true] .bracket-nav__list{border:1px solid var(--color-line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20;background:#020202eb;flex-direction:column;align-items:flex-end;gap:.65rem;max-width:min(86vw,18rem);padding:.85rem .9rem;display:flex;position:absolute;top:calc(100% + .6rem);right:0}.page-frame--home .page-frame__header{width:min(calc(100% - (var(--page-inline-padding) * 2)), var(--measure-wide));flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding-top:0;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.page-frame--home .page-frame__header-inner{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:.75rem;display:flex}.page-frame--home .page-frame__nav{justify-content:center}.page-frame--home .bracket-nav__list{justify-content:center;align-items:center;gap:.5rem;width:auto}.bracket-nav__link{padding:.25rem 0}.page-frame--home .page-frame__spacer{display:none}.page-frame--home .page-frame__content{min-height:100vh}.page-frame--home .bracket-nav__list{flex-direction:column;align-items:center}.home-page{min-height:100%}.mono-list__row{grid-template-columns:2.5rem minmax(0,1fr);gap:1rem;padding:.95rem 0}.mono-list-page__header{margin-bottom:1.75rem}.mono-list__meta{display:none}.mono-project-row__title,.mono-writing-row__title{white-space:normal;overflow-wrap:anywhere;word-break:break-word;display:block}.mono-project-row__title-text{display:block}.mono-project-row__summary{white-space:normal;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.35rem 0 0;display:-webkit-box;overflow:hidden}.mono-project-row__panel{padding-bottom:1.25rem;padding-left:0}.mono-project-row__panel--open{-webkit-overflow-scrolling:touch;max-height:min(60vh,420px);overflow:auto}.mono-project-row__long{max-width:none;font-size:var(--type-ui);line-height:1.75}.contact-row{grid-template-columns:5.25rem minmax(0,1fr);gap:1.25rem}.site-footer{letter-spacing:.05em;flex-flow:row;justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.66rem}.site-footer__copyright,.site-footer__status{white-space:nowrap;text-overflow:ellipsis;max-width:50%;overflow:hidden}.detail-layout,.detail-layout--reading,.resume-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
