.connect-section[data-astro-cid-jjagjrbk]{display:flex;flex-direction:column;gap:var(--space-5)}.connect-section[data-astro-cid-jjagjrbk] .section-header[data-astro-cid-jjagjrbk]{margin-bottom:0}.connect-description[data-astro-cid-jjagjrbk]{color:var(--c-text-dim);margin:0;max-width:var(--copy-width)}.language-footer-nav[data-astro-cid-a2mxz4y6]{margin:0;min-height:var(--touch-target);display:flex;align-items:center}.profile-header[data-astro-cid-b3uuc2c6]{display:flex;flex-direction:column;gap:var(--space-5);min-height:var(--touch-target);width:100%}.profile-info[data-astro-cid-b3uuc2c6]{display:flex;flex-direction:column;gap:var(--space-3)}.profile-title-row[data-astro-cid-b3uuc2c6]{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3)}.profile-handle[data-astro-cid-b3uuc2c6]{font-size:var(--fs-sm);color:var(--c-accent);letter-spacing:var(--ls-tight);text-transform:uppercase}.profile-meta[data-astro-cid-b3uuc2c6]{font-size:var(--fs-sm);letter-spacing:var(--ls-wide);color:var(--c-accent);margin:0}.profile-subtitle[data-astro-cid-b3uuc2c6]{text-transform:uppercase}.profile-name[data-astro-cid-b3uuc2c6]{font-size:var(--fs-2xl);line-height:1;margin:0;color:var(--c-text);font-weight:600;letter-spacing:var(--ls-tight)}.profile-bio[data-astro-cid-b3uuc2c6]{font-size:var(--fs-base);line-height:1.6;color:var(--c-text-dim);margin:0}.profile-actions[data-astro-cid-b3uuc2c6]{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-1)}.contact-link[data-astro-cid-b3uuc2c6]{display:inline-flex;align-items:center;min-height:var(--touch-target);border:var(--border-width) solid var(--c-accent);padding:0 var(--space-3);color:var(--c-accent);font-size:var(--fs-sm);font-weight:600;letter-spacing:var(--ls-wide);text-decoration:none;text-transform:uppercase}@media (hover:hover) and (pointer:fine){.contact-link[data-astro-cid-b3uuc2c6]:hover,.contact-link[data-astro-cid-b3uuc2c6]:focus-visible{background:var(--c-accent);color:var(--c-bg)}}.back-hint[data-astro-cid-b3uuc2c6]{color:var(--c-bg);font-size:var(--fs-lg);font-weight:600;line-height:1;transition:color var(--duration-exit) var(--ease-out)}.compact-avatar[data-astro-cid-b3uuc2c6]{width:var(--touch-target);height:var(--touch-target);display:flex;align-items:center;justify-content:center;background:var(--c-accent);border:var(--border-width) solid transparent;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.compact-name[data-astro-cid-b3uuc2c6]{font-size:var(--fs-xl);transition:color var(--duration-fast) var(--ease-out)}.profile-link[data-astro-cid-b3uuc2c6]{display:flex;flex-direction:row;text-decoration:none;color:inherit;align-items:center;gap:var(--space-4);cursor:pointer}@media (hover:hover) and (pointer:fine){.profile-link[data-astro-cid-b3uuc2c6]:hover{background:0 0;color:inherit}.profile-link[data-astro-cid-b3uuc2c6]:hover .compact-avatar[data-astro-cid-b3uuc2c6],.profile-link[data-astro-cid-b3uuc2c6]:focus-visible .compact-avatar[data-astro-cid-b3uuc2c6]{background:0 0;border-color:var(--c-accent)}.profile-link[data-astro-cid-b3uuc2c6]:hover .back-hint[data-astro-cid-b3uuc2c6],.profile-link[data-astro-cid-b3uuc2c6]:focus-visible .back-hint[data-astro-cid-b3uuc2c6]{color:var(--c-accent)}}.profile-link[data-astro-cid-b3uuc2c6]:focus-visible .compact-avatar[data-astro-cid-b3uuc2c6]{transition-duration:var(--duration-fast)}:root{--c-bg:#181818;--c-surface:#202020;--c-surface-alt:#242424;--c-border:#3a3a3a;--c-accent:#edbc63;--c-text:#fff;--c-text-dim:#c9c9c9;--c-text-muted:var(--c-text-dim);--ls-tight:-.5px;--ls-normal:.5px;--ls-wide:1px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-8:48px;--space-10:64px;--layout-width:900px;--copy-width:64ch;--screen-width:100vw;--fluid-width:100%;--space-section:var(--space-8);--space-row:var(--space-5);--touch-target:44px;--border-width:1px;--border-width-thick:2px;--fs-sm:.875rem;--fs-base:1rem;--fs-md:clamp(1.125rem, 1.05rem + .35vw, 1.25rem);--fs-lg:clamp(1.25rem, 1.15rem + .5vw, 1.5rem);--fs-xl:clamp(1.75rem, 1.5rem + 1vw, 2rem);--fs-2xl:clamp(2.5rem, 5vw, 3rem);--fs-3xl:clamp(3rem, 6vw, 4rem);--fs-code:.95em;--lh-body:1.6;--lh-heading:1.15;--lh-display:1;--font-mono:ui-monospace, "Cascadia Code", "Source Code Pro", menlo, monospace;--duration-exit:80ms;--duration-press:.1s;--duration-fast:.15s;--duration-page:.2s;--active-scale:.97;--ease-out:cubic-bezier(.23, 1, .32, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:clip;width:100%;max-width:var(--screen-width)}img,video,iframe{display:block;max-width:var(--fluid-width);height:auto}table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse;margin-bottom:var(--space-5);-webkit-mask-image:linear-gradient(to right,transparent,#000 12px,#000 calc(100% - 12px),transparent);mask-image:linear-gradient(to right,transparent,#000 12px,#000 calc(100% - 12px),transparent)}body{font:400 1rem/var(--lh-body) var(--font-mono);background:var(--c-bg);color:var(--c-text);-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}@media (min-width:700px){body{font-size:1.0625rem}}@media (min-width:900px){body{font-size:1.09375rem}}@media (min-width:1100px){body{font-size:1.125rem}}h1,h2,h3,h4,h5,h6{font:inherit;font-weight:600;line-height:var(--lh-heading);margin:0 0 var(--space-4);font-optical-sizing:auto}h1{font-size:var(--fs-2xl);line-height:var(--lh-display);letter-spacing:-.03em}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}h5{font-size:var(--fs-base)}h6{font-size:var(--fs-sm)}@media (min-width:900px){h1{font-size:var(--fs-3xl)}}p{margin-top:0;color:var(--c-text-dim)}p+p{margin-top:var(--space-4)}ul,ol{padding-left:1.25rem;margin:0 0 var(--space-4)}li{margin:var(--space-2)0}*{scrollbar-color:var(--c-border) var(--c-surface-alt);scrollbar-width:thin}::-webkit-scrollbar{height:8px;width:8px;background:var(--c-surface-alt)}::-webkit-scrollbar-thumb{background:var(--c-border)}::-webkit-scrollbar-thumb:hover{background:var(--c-accent)}code,pre{font-family:inherit;font-size:var(--fs-code)}pre{background:var(--c-surface-alt);padding:var(--space-4);overflow-x:auto;margin:0 0 var(--space-5);border:var(--border-width) solid var(--c-border)}pre code{background:0 0;padding:0;color:var(--c-text)}a{color:var(--c-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),text-decoration-color var(--duration-fast) var(--ease-out)}.pressable-control{transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-press) var(--ease-out)}.pressable-control:active{transform:scale(var(--active-scale))}p a,li a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}@media (hover:hover) and (pointer:fine){a:hover{background-color:var(--c-accent);color:var(--c-bg);text-decoration:none}p a:hover,li a:hover{text-decoration-thickness:2px}.card-primary-link:hover{background-color:transparent;color:var(--c-text)}.project-card:hover .card-title,.note-card:hover .card-title{background-color:var(--c-accent);color:var(--c-bg)}}:focus-visible{outline:var(--border-width-thick) solid var(--c-accent);outline-offset:2px}.card-primary-link:focus-visible{outline:0}.project-card:has(.card-primary-link:focus-visible),.note-card:has(.card-primary-link:focus-visible){outline:var(--border-width-thick) solid var(--c-accent);outline-offset:2px}.tag{display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-sm);background:0 0;border:var(--border-width) solid var(--c-border);color:var(--c-accent);padding:var(--space-1) var(--space-3);min-height:var(--touch-target);text-transform:lowercase;letter-spacing:var(--ls-normal)}.section-intro{color:var(--c-text-dim);font-size:var(--fs-base);line-height:1.6;margin:0 0 var(--space-6);max-width:var(--copy-width)}.prose{color:var(--c-text);line-height:1.6;max-width:var(--copy-width)}.prose h2{font-size:var(--fs-lg);line-height:1.1;margin:var(--space-section)0 var(--space-3);text-transform:uppercase;letter-spacing:var(--ls-wide)}.prose h2:first-child{margin-top:0}.prose p{margin-bottom:var(--space-4)}.prose p:last-child,.prose ul:last-child,.prose ol:last-child{margin-bottom:0}.prose ul,.prose ol{margin-bottom:var(--space-4);padding-left:var(--space-5)}.section-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-6)}.section-title{font-size:var(--fs-xl);line-height:var(--lh-display);color:var(--c-text);margin-bottom:0;text-transform:uppercase;letter-spacing:var(--ls-wide)}.nav-link-text{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:var(--ls-wide);white-space:nowrap}.section-link{color:var(--c-accent);line-height:1;display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:0 var(--space-3);margin-inline-start:auto}.retro-link{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);text-decoration:none;border:var(--border-width) solid transparent;padding:0 var(--space-3);min-width:var(--touch-target);min-height:var(--touch-target);background:var(--c-accent);color:var(--c-bg);font-weight:600;font-size:var(--fs-md)}@media (hover:hover) and (pointer:fine){.retro-link:hover{text-decoration:none;background:0 0;color:var(--c-accent);border-color:var(--c-accent)}}.rows-divided>*{padding:var(--space-row)0}.rows-divided>*+*{border-top:var(--border-width) solid var(--c-border)}.rows-divided>:first-child{padding-top:0}.rows-divided>:last-child{padding-bottom:0}.detail-title{font-size:var(--fs-2xl);line-height:var(--lh-display);margin:0;max-width:var(--copy-width);text-transform:uppercase;letter-spacing:-.02em;color:var(--c-text)}.meta-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0}.meta-item{color:var(--c-accent);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;letter-spacing:var(--ls-wide);margin:0}.meta-label{color:var(--c-text-muted);text-transform:uppercase}.frame-image{aspect-ratio:2/1;background:var(--c-surface-alt);border:var(--border-width) solid var(--c-border);overflow:hidden}.frame-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-fast) var(--ease-out)}.project-card,.note-card{display:flex;flex-direction:column;position:relative}.card-content{display:flex;flex-direction:column;align-items:flex-start;flex:1;gap:var(--space-3)}.card-title{font-size:var(--fs-lg);line-height:1.35;margin:0;color:var(--c-accent);font-weight:600;transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.card-description{font-size:var(--fs-base);color:var(--c-text-dim);line-height:1.6;margin:0;flex:1}.card-date{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--c-accent);text-transform:uppercase;letter-spacing:var(--ls-wide)}.card-primary-link{color:var(--c-text);text-decoration:none}@media (hover:hover) and (pointer:fine){.project-card:hover .frame-image img,.project-card:has(.card-primary-link:focus-visible) .frame-image img{transform:scale(1.025)}}.site-wrapper{width:100%;max-width:var(--screen-width);overflow-x:clip;margin:0 auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-section);flex:1}@media (min-width:700px){.section-header{margin-bottom:var(--space-5)}.site-wrapper{max-width:var(--layout-width);padding:var(--space-10);overflow-x:visible}}#main-content{width:100%;max-width:var(--fluid-width);flex:1;display:flex;flex-direction:column;gap:var(--space-section)}#main-content>:global(*){margin-bottom:0}.content-wrapper{padding:var(--space-4)0}.site-footer{padding-top:var(--space-6);margin-top:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important;transition-property:color,background-color,border-color,opacity!important;transition-duration:var(--duration-exit)!important}.pressable-control:active,.project-card:hover .frame-image img,.project-card:has(.card-primary-link:focus-visible) .frame-image img{transform:none!important}}@media (prefers-contrast:more){:root{--c-border:#777;--c-text-dim:#ececec}}@media (prefers-reduced-transparency:reduce){*{backdrop-filter:none!important}}