.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.site-header-compact[data-astro-cid-nen7h5rs]{flex-wrap:nowrap;align-items:center}.site-header-compact[data-astro-cid-nen7h5rs] .header-actions[data-astro-cid-nen7h5rs]{width:auto}.site-header-compact[data-astro-cid-nen7h5rs] .theme-toggle[data-astro-cid-nen7h5rs]{width:2.75rem;height:2.75rem}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Inter;src:url(/fonts/InterVariable.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{color-scheme:light;--bg:#f4f4f5;--bg-strong:#ececee;--surface:#fff;--text:#1b1b1f;--muted:#5c6067;--subtle:#62666d;--border:#e8e8ea;--accent:#1d7a50;--accent-subtle:#2f9e6b1f;--accent-glow:#2f9e6b1a;--on-accent:#fff;--button-shadow:inset 0 1px 0 #ffffff73, 0 1px 2px #00000014;--button-primary-shadow:inset 0 1px 0 #ffffff47, 0 1px 3px #00000029;--radius:0;--max-width:1120px;--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif:ui-serif, Georgia, Cambria, "Times New Roman", serif;--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--font-sans)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#08090a;--bg-strong:#16171a;--surface:#0f1011;--text:#f7f8f8;--muted:#8a8f98;--subtle:#848991;--border:#1c1d20;--accent:#4cb782;--accent-subtle:#4cb78224;--accent-glow:#4cb7821f;--on-accent:#08090a;--button-shadow:inset 0 1px 0 #ffffff1a, 0 1px 2px #0006;--button-primary-shadow:inset 0 1px 0 #ffffff1a, 0 1px 2px #0006}}:root[data-theme=dark]{color-scheme:dark;--button-shadow:inset 0 1px 0 #ffffff1a, 0 1px 2px #0006;--button-primary-shadow:inset 0 1px 0 #ffffff1a, 0 1px 2px #0006;--bg:#08090a;--bg-strong:#16171a;--surface:#0f1011;--text:#f7f8f8;--muted:#8a8f98;--subtle:#848991;--border:#1c1d20;--accent:#4cb782;--accent-subtle:#4cb78224;--accent-glow:#4cb7821f;--on-accent:#08090a}*{box-sizing:border-box}::selection{background:var(--accent-subtle)}html{background:var(--bg)}body{background:var(--bg);color:var(--text);margin:0;font-size:16px;line-height:1.6}a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:.18em}a:hover{color:var(--accent)}:where(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{text-wrap:balance}code{font-family:var(--font-mono);font-size:.92em}.skip-link{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus-visible{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);clip:auto;color:var(--text);white-space:normal;z-index:100;width:auto;height:auto;padding:.55rem .85rem;position:fixed;top:.75rem;left:.75rem}img,video{max-width:100%;height:auto}figure{margin:2rem 0}figcaption{color:var(--muted);text-align:center;margin-top:.65rem;font-size:.92rem}pre{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;overflow-x:auto}.astro-code,.astro-code span{background-color:var(--shiki-light-bg);color:var(--shiki-light)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{background-color:var(--shiki-dark-bg);color:var(--shiki-dark)}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{background-color:var(--shiki-dark-bg);color:var(--shiki-dark)}:not(pre)>code{background:var(--bg-strong);border:1px solid var(--border);border-radius:0;padding:.12rem .3rem}blockquote{border-left:3px solid color-mix(in srgb, var(--text) 18%, var(--border));color:var(--muted);margin:2rem 0;padding-left:1.1rem}.site-shell{max-width:var(--max-width);margin:0 auto;padding:0 1.2rem}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0;display:flex}.brand{color:var(--text);align-items:center;gap:.6rem;font-weight:700;text-decoration:none;display:inline-flex}.brand:hover{color:var(--text)}.brand-mark{background:var(--text);color:var(--surface);border-radius:7px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.78rem;display:inline-flex}.header-actions{align-items:center;gap:.45rem;display:flex}.theme-toggle{background:var(--surface);border:1px solid var(--border);color:var(--muted);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;display:inline-flex}.theme-toggle:hover{background:var(--bg-strong);color:var(--text)}.theme-icon{width:1.15rem;height:1.15rem;display:none}:root[data-theme=light] .theme-icon-moon,:root:not([data-theme]) .theme-icon-moon,:root[data-theme=dark] .theme-icon-sun{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme]) .theme-icon-moon{display:none}:root:not([data-theme]) .theme-icon-sun{display:block}}.app-shell{grid-template-columns:auto minmax(0,1fr);min-height:100vh;display:grid}.app-content{width:100%;max-width:1040px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3.5rem)}.sidebar{background:var(--surface);border-right:1px solid var(--border);height:100dvh;display:flex;position:sticky;top:0}.sidebar-rail{border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:.75rem;width:4rem;padding:.85rem .6rem;display:flex}.rail-brand{letter-spacing:.01em;border-radius:9px;flex:none;width:2.5rem;height:2.5rem;font-size:.85rem;font-weight:700;text-decoration:none}.rail-brand:hover{background:var(--accent);color:var(--on-accent)}.rail-nav,.rail-footer{flex-direction:column;align-items:center;gap:.3rem;display:flex}.rail-nav{border-top:1px solid var(--border);padding-top:.75rem}.rail-footer{margin-top:auto}.rail-link{color:var(--muted);border-radius:999px;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:inline-flex}.rail-link svg{width:1.35rem;height:1.35rem}.rail-link:hover{background:var(--bg-strong);color:var(--text)}.rail-link[aria-current=page]{background:var(--accent-subtle);color:var(--accent)}.rail-label{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.rail-link,.theme-toggle{position:relative}@media (hover:hover) and (width>=861px){.rail-link:hover .rail-label,.rail-link:focus-visible .rail-label,.theme-toggle:hover:after,.theme-toggle:focus-visible:after{background:var(--text);clip:auto;color:var(--surface);pointer-events:none;white-space:nowrap;z-index:50;width:auto;height:auto;margin:0;padding:.35rem .55rem;font-size:.78rem;font-weight:600;line-height:1.2;position:absolute;top:50%;left:calc(100% + .6rem);overflow:visible;transform:translateY(-50%)}.theme-toggle:hover:after,.theme-toggle:focus-visible:after{content:attr(aria-label)}.site-header .theme-toggle:hover:after,.site-header .theme-toggle:focus-visible:after{top:calc(100% + .45rem);left:auto;right:0;transform:none}}.rail-footer .theme-icon{width:1.35rem;height:1.35rem}.rail-footer .theme-toggle{border-color:#0000;border-radius:999px;width:2.5rem;height:2.5rem}.sidebar-panel{background:radial-gradient(ellipse 260px 140px at 24px 0, var(--accent-glow), transparent) no-repeat;flex-direction:column;width:15rem;min-height:0;display:flex}.panel-profile{border-bottom:1px solid var(--border);padding:1rem 1rem 1.1rem}.panel-identity{color:var(--text);align-items:center;gap:.65rem;text-decoration:none;display:flex}.panel-identity:hover{color:var(--text)}.panel-identity img{border:1px solid var(--border);box-shadow:0 0 0 2px var(--surface);filter:brightness(1.15);object-fit:cover;object-position:center 28%;border-radius:999px;flex:none;width:2.5rem;height:2.5rem}.panel-identity>span{flex-direction:column;line-height:1.25;display:flex}.panel-name{font-size:1rem;font-weight:700}.panel-domain{color:var(--subtle);font-size:.8rem}.panel-identity:hover .panel-domain{color:var(--accent)}.panel-tagline{color:var(--muted);margin:.75rem 0 0;font-size:.86rem;line-height:1.5}.panel-scroll{overscroll-behavior:contain;flex:auto;overflow-y:auto}.panel-section{border-bottom:1px solid var(--border);padding:.85rem 0 .75rem}.panel-section:last-child{border-bottom:0}.panel-section h2{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .4rem;padding:0 1rem;font-size:.7rem;font-weight:650}.panel-section h2 a{text-decoration:none}.panel-section ul{margin:0;padding:0;list-style:none}.panel-item{color:var(--text);border-radius:0;align-items:center;gap:.6rem;min-height:2.25rem;padding:.3rem 1rem;font-size:.9rem;text-decoration:none;display:flex}.panel-item:hover{background:var(--bg-strong);color:var(--text)}.panel-item-text{color:var(--muted);line-height:1.35}.panel-item-icon{border-radius:6px;flex:none;width:1.6rem;height:1.6rem}.panel-brand-icon{flex:none;width:1rem;height:1rem;margin:0 .3rem}.panel-external{color:var(--subtle);margin-left:auto;font-size:.8rem}.panel-item-logo{object-fit:contain;padding:.2rem}.panel-item-stack{flex-direction:column;line-height:1.25;display:flex}.panel-item-detail{color:var(--subtle);font-size:.78rem}.panel-item-fallback{background:var(--bg-strong);color:var(--muted);justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}@media (width<=860px){.app-shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.sidebar{backdrop-filter:blur(20px)saturate(1.8);background:color-mix(in srgb, var(--surface) 78%, transparent);border-bottom:1px solid var(--border);z-index:10;border-right:0;height:auto}.sidebar-panel{display:none}.sidebar-rail{background:0 0;border-right:0;flex-direction:row;gap:.5rem;width:100%;padding:.5rem .75rem}.rail-nav,.rail-footer{flex-direction:row;gap:.15rem}.rail-nav{border-left:1px solid var(--border);border-top:0;min-width:0;padding-top:0;padding-left:.5rem;overflow-x:auto}.rail-footer{margin-top:0;margin-left:auto}}.button{backdrop-filter:blur(12px)saturate(1.6);border:1px solid color-mix(in srgb, var(--text) 14%, transparent);box-shadow:var(--button-shadow);border-radius:999px;justify-content:center;align-items:center;min-height:2.55rem;padding:.6rem 1rem;font-size:.95rem;font-weight:650;text-decoration:none;display:inline-flex}.button.primary{background:var(--accent);border-color:color-mix(in srgb, var(--accent) 75%, #000);box-shadow:var(--button-primary-shadow);color:var(--on-accent)}.button.primary:hover{background:color-mix(in srgb, var(--accent) 85%, var(--text));border-color:color-mix(in srgb, var(--accent) 85%, var(--text));color:var(--on-accent)}.button.secondary{background:color-mix(in srgb, var(--surface) 70%, transparent);color:var(--text)}.button.secondary:hover{background:var(--bg-strong);border-color:color-mix(in srgb, var(--text) 18%, var(--border));color:var(--text)}.section{border-top:1px solid var(--border);padding:2.5rem 0}.section-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.2rem;display:flex}.section-heading h2{letter-spacing:-.015em;margin:0;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1}.muted{color:var(--muted)}.heading-emoji{letter-spacing:0;margin-right:.35em;font-weight:400;display:inline-block}.home{padding:3.5rem 0 1rem}.home-hero{grid-template-columns:7rem minmax(0,1fr);align-items:start;gap:1.75rem;padding-bottom:3rem;display:grid}.home-portrait{aspect-ratio:1;border:1px solid var(--border);box-shadow:0 0 0 4px var(--surface), 0 0 0 5px var(--border);filter:brightness(1.15);object-fit:cover;object-position:center 28%;border-radius:999px;width:100%}.home-intro h1{margin:0}.home-greeting{color:var(--muted);margin-bottom:.35rem;font-size:1rem;font-weight:600;display:block}.home-roles{letter-spacing:-.02em;font-size:clamp(1.75rem,3.5vw,2.4rem);font-weight:700;line-height:1.15;display:block}.home-lede{color:var(--muted);max-width:40rem;margin:.85rem 0 0;font-size:clamp(1.02rem,1.4vw,1.15rem);line-height:1.55}.home-actions{flex-wrap:wrap;gap:.7rem;margin-top:1.5rem;display:flex}.home-section{border-top:1px solid var(--border);padding:2.25rem 0}.home .section-heading h2{letter-spacing:-.01em;font-size:1.35rem}.home .section-heading .muted{font-size:.92rem}.home-products,.home-posts{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem;display:grid}.home-product,.home-post,.home-day-job{background:var(--surface);border:1px solid var(--border);border-radius:0}.home-product{flex-direction:column;padding:1.1rem;display:flex}.home-product-header{align-items:center;gap:.8rem;margin-bottom:.75rem;display:flex}.home-product-icon,.panel-item-icon{box-shadow:0 0 0 1px var(--border);background:#fff}.home-product-icon{border-radius:11px;flex:none;width:3rem;height:3rem}.home-product h3{margin:0;font-size:1.05rem;line-height:1.25}.home-product h3 a{text-decoration:none}.home-product>p{color:var(--muted);margin:0;font-size:.95rem;line-height:1.5}.home-product .project-feedback-link{margin-top:auto;padding-top:.75rem}.home-meta{color:var(--subtle);margin:0;font-size:.82rem}.home-day-job{color:var(--text);grid-template-columns:4rem minmax(0,1fr);align-items:center;gap:1.1rem;padding:1.25rem;text-decoration:none;display:grid}.home-day-job:hover{color:var(--text)}.home-day-job img{aspect-ratio:1;background:var(--bg);border:1px solid var(--border);object-fit:contain;border-radius:12px;width:4rem;padding:.65rem}.home-day-job h3{margin:.1rem 0 .2rem;font-size:1.15rem}.home-day-job p:last-child{color:var(--muted);margin:0}.home-post{color:var(--text);flex-direction:column;gap:.45rem;padding:1.1rem;text-decoration:none;display:flex}.home-post:hover{color:var(--text)}.home-post .home-meta{letter-spacing:.06em;text-transform:uppercase}.home-post h3{letter-spacing:-.01em;margin:0;font-size:1.1rem;line-height:1.3}.home-post p{-webkit-line-clamp:3;color:var(--muted);-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.5;display:-webkit-box;overflow:hidden}@media (hover:hover) and (pointer:fine){.home-product:hover,.home-post:hover,.home-day-job:hover{border-color:color-mix(in srgb, var(--text) 18%, var(--border))}}.home-closing{background:var(--surface);border:1px solid var(--border);border-radius:0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem 2rem;margin:1rem 0 2.5rem;padding:1.75rem;display:flex}.home-closing h2{letter-spacing:-.015em;margin:0;font-size:1.2rem}.home-closing p{color:var(--muted);margin:.35rem 0 0}.home-closing .home-actions{margin-top:0}.post-row h2{margin:0}.post-list{display:grid}.post-row{border-bottom:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) auto;gap:.15rem;margin:0 -.9rem;padding:1.35rem .9rem;text-decoration:none;display:grid}.post-row:first-child{border-top:1px solid var(--border)}.post-row h2,.post-row h3{letter-spacing:-.01em;font-size:1.25rem;line-height:1.3}.post-excerpt{-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:68ch;margin:.3rem 0 0;display:-webkit-box;overflow:hidden}@media (hover:hover) and (pointer:fine){.post-row:hover{background:var(--surface)}}.project-feedback-link{color:var(--accent);margin-top:.65rem;font-size:.9rem;font-weight:650;text-decoration:none;display:inline-block}.project-feedback-link:hover{text-decoration:underline}.post-meta{color:var(--subtle);font-size:.88rem}.post-row .post-meta{text-align:right;white-space:nowrap;padding-top:.2rem}.article{max-width:760px;margin:0 auto;padding:3rem 0 5rem}.article-header{margin-bottom:2rem}.article h1{letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(2rem,4.5vw,3.25rem);line-height:1.05}.article-description{color:var(--muted);font-size:1.12rem}.article-content{font-size:1.05rem}.article-content.prose{font-family:var(--font-serif);font-size:1.12rem;line-height:1.7}.article-content.prose h2,.article-content.prose h3,.article-content.prose h4{font-family:var(--font-sans);letter-spacing:-.015em}.article-content.prose blockquote{font-style:italic}.article-content h2,.article-content h3,.article-content h4{margin-top:2.5rem;line-height:1.15}.article-content a{color:var(--accent)}.article-content img{border-radius:var(--radius)}.related-writing{border-top:1px solid var(--border);margin-top:3rem;padding-top:2rem}.related-writing>h2{margin:0 0 1rem;font-size:clamp(1.4rem,3vw,1.9rem)}.article:has(.about-hero){max-width:920px}.article:has(.portfolio-section){max-width:1040px}.portfolio-section{padding:2rem 0}.portfolio-section+.portfolio-section{border-top:1px solid var(--border)}.portfolio-section h2{margin:0 0 1.1rem;font-size:clamp(1.45rem,3vw,2.05rem)}.portfolio-featured-grid,.portfolio-archive-grid,.portfolio-older-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.portfolio-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-rows:auto 1fr;display:grid;overflow:hidden}.article-content a.portfolio-card{color:inherit;text-decoration:none}.portfolio-card[href]:hover{border-color:color-mix(in srgb, var(--text) 18%, var(--border))}.article-content .portfolio-card h3 a{color:var(--text)}.article-content .portfolio-card h3 a:hover,.portfolio-card[href] h3{color:var(--accent)}.portfolio-card-media{aspect-ratio:16/9;background:var(--bg-strong);border-bottom:1px solid var(--border);justify-content:center;align-items:center;display:flex}.portfolio-card-media img{object-fit:cover;width:100%;height:100%;display:block}.portfolio-card-media img[src$=\.svg]{box-sizing:border-box;object-fit:contain;padding:2.2rem}.portfolio-card-media img[data-fit=contain]{box-sizing:border-box;object-fit:contain;padding:1.4rem}.portfolio-card-compact .portfolio-card-media img[data-fit=contain]{padding:.7rem}.portfolio-card-fallback{background:var(--text);color:var(--surface);border-radius:999px;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1rem;font-weight:750;display:inline-flex}.portfolio-card-body{padding:1rem}.portfolio-meta{color:var(--subtle);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .45rem;font-size:.82rem;font-weight:700}.portfolio-card h3{margin:0;font-size:1.25rem}.portfolio-card p{margin:.55rem 0 0}.portfolio-contribution{color:var(--muted)}.feedback-page{padding:3rem 0 5rem}.feedback-hero{max-width:46rem;margin-bottom:2.75rem}.feedback-hero h1{letter-spacing:-.035em;margin:0 0 1rem;font-size:clamp(2.3rem,5vw,4rem);line-height:1}.feedback-hero p{color:var(--muted);margin:0;font-size:clamp(1.05rem,1.8vw,1.25rem)}.feedback-section-heading{justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:1.25rem;display:flex}.feedback-section-heading h2{letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.1}.feedback-section-heading p{color:var(--muted);max-width:46rem;margin:.55rem 0 0}.feedback-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:1.15rem;max-width:760px;padding:clamp(1rem,3vw,1.6rem);display:grid}.feedback-field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.feedback-field{gap:.42rem;display:grid}.feedback-field>span,.feedback-filter>span{color:var(--text);font-size:.9rem;font-weight:700}.feedback-field small{color:var(--subtle);font-size:.8rem;font-weight:500}.feedback-field :where(input,select,textarea),.feedback-filter select{appearance:none;background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:0;width:100%;padding:.7rem .78rem;font-size:.96rem;line-height:1.35}.feedback-field select,.feedback-filter select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 11px) calc(50% - 2px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:2.25rem}.feedback-field textarea{resize:vertical;min-height:10rem}.feedback-field :where(input,select,textarea):focus,.feedback-filter select:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb, var(--accent) 20%, transparent);outline-offset:1px}.feedback-field :where(input,textarea)::placeholder{color:var(--subtle)}.feedback-field select:disabled{color:var(--muted);cursor:not-allowed;opacity:.8}.feedback-context{border-top:1px solid var(--border);padding-top:1rem}.feedback-context summary{color:var(--muted);cursor:pointer;font-size:.92rem;font-weight:650}.feedback-context[open] summary{margin-bottom:1rem}.feedback-honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.feedback-config-note{background:var(--bg-strong);color:var(--muted);border-radius:0;margin:0;padding:.7rem .8rem;font-size:.9rem}.feedback-form-footer{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.feedback-submit{cursor:pointer}.feedback-submit:disabled{cursor:wait;opacity:.58}.feedback-form-status{color:var(--muted);margin:0;font-size:.92rem}.feedback-form-status[data-kind=error]{color:#b42318}.feedback-form-status[data-kind=success]{color:#217a45}:root[data-theme=dark] .feedback-form-status[data-kind=error]{color:#ff9b91}:root[data-theme=dark] .feedback-form-status[data-kind=success]{color:#7fdda8}.feedback-filter{flex:0 0 12rem;gap:.35rem;display:grid}.feedback-board-state{color:var(--muted);margin:0 0 .9rem;font-size:.9rem}.feedback-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.feedback-column{background:var(--bg-strong);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:.75rem}.feedback-column-header{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.7rem;display:flex}.feedback-column-header h3{letter-spacing:-.01em;margin:0;font-size:.95rem}.feedback-column-header span{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:999px;justify-content:center;align-items:center;min-width:1.5rem;height:1.5rem;padding:0 .35rem;font-size:.76rem;display:inline-flex}.feedback-ticket-list{gap:.6rem;display:grid}.feedback-ticket{background:var(--surface);border:1px solid var(--border);border-radius:0;padding:.75rem}.feedback-ticket-meta{color:var(--subtle);letter-spacing:.045em;text-transform:uppercase;margin:0 0 .38rem;font-size:.72rem;font-weight:700}.feedback-ticket h4{margin:0;font-size:.96rem;line-height:1.35}.feedback-ticket-description{color:var(--muted);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:.55rem 0 0;font-size:.84rem;line-height:1.45;display:-webkit-box;overflow:hidden}.feedback-ticket-updated{color:var(--subtle);margin-top:.65rem;font-size:.75rem;display:block}.feedback-column-empty{color:var(--subtle);text-align:center;margin:0;padding:.65rem .2rem;font-size:.82rem}.portfolio-card-compact{grid-template-rows:auto;grid-template-columns:8rem minmax(0,1fr)}.portfolio-card-compact .portfolio-card-media{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--border);min-height:100%}.portfolio-card-small{grid-template-columns:6rem minmax(0,1fr)}.portfolio-card-small .portfolio-card-body{padding:.75rem}.portfolio-card-small .portfolio-meta{font-size:.72rem}.portfolio-card-small h3{font-size:1.05rem}.portfolio-card-small p{font-size:.92rem}.project-detail{max-width:920px}.project-back-link{margin-bottom:1rem;font-size:.92rem;font-weight:750;display:inline-block}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2rem;display:grid}.project-gallery img{aspect-ratio:16/10;background:var(--bg-strong);border:1px solid var(--border);object-fit:cover;width:100%}.project-gallery img[data-fit=contain]{box-sizing:border-box;object-fit:contain;padding:1rem}.about-hero{grid-template-columns:minmax(0,1fr) minmax(12rem,15rem);align-items:center;gap:2rem;margin-bottom:2.5rem;display:grid}.about-kicker{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.82rem;font-weight:750}.about-lede{color:var(--text);margin-top:0;font-size:clamp(1.15rem,2vw,1.32rem);line-height:1.45}.about-photo{aspect-ratio:1;border:1px solid var(--border);object-fit:cover;width:100%;display:block}.about-links{flex-wrap:wrap;gap:.6rem;margin-top:1.3rem;display:flex}.about-links a{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.48rem .78rem;font-size:.94rem;font-weight:650;text-decoration:none}.about-links a:hover{background:var(--bg-strong);border-color:color-mix(in srgb, var(--text) 18%, var(--border));color:var(--text)}.about-section{border-top:1px solid var(--border);padding:2.35rem 0}.about-section h2{margin:0 0 1.15rem;font-size:clamp(1.45rem,3vw,2.05rem);line-height:1.05}.about-list,.about-notes,.timeline-group ul{margin:0;padding:0;list-style:none}.about-list{gap:.9rem;display:grid}.about-list li>span{color:var(--subtle);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.18rem;font-size:.78rem;font-weight:750;line-height:1.2;display:block}.about-list p,.timeline-group li span{margin:0}.about-list-compact{color:var(--muted);gap:.35rem;padding-left:1.25rem;list-style:outside}.about-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1.1rem;display:grid}.about-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem}.about-stat strong{margin-bottom:.35rem;font-size:1.85rem;line-height:1;display:block}.about-stat span{color:var(--muted);font-size:.9rem;line-height:1.35;display:block}.about-timeline{gap:1.7rem;display:grid}.timeline-group h3{color:var(--muted);margin:0 0 .65rem;font-size:1rem}.timeline-group li{border-top:1px solid var(--border);grid-template-columns:5.8rem minmax(0,1fr);gap:1rem;padding:.58rem 0;display:grid}.timeline-group time{color:var(--subtle);font-size:.86rem;font-weight:750}.about-notes{color:var(--muted);columns:2;column-gap:2rem}.about-notes li{break-inside:avoid;margin-bottom:.55rem;padding-left:1rem;position:relative}.about-notes li:before{background:var(--accent);content:"";border-radius:999px;width:.35rem;height:.35rem;position:absolute;top:.7rem;left:0}.site-footer{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:2rem 0 3rem;font-size:.9rem;display:flex}.footer-links{flex-wrap:wrap;gap:.4rem 1.1rem;display:flex}.footer-links a{color:var(--muted);text-decoration:none}.footer-links a:hover{color:var(--text)}@media (prefers-reduced-motion:no-preference){body,a,.theme-toggle,.rail-link,.panel-item,.home-product,.home-day-job,.home-post,.post-row,.about-links a,.about-stat{transition:background-color .16s,border-color .16s,color .16s}.button{transition:background-color .16s,border-color .16s,color .16s,transform .16s ease-out}.button:active{transform:scale(.97)}}@media (width<=780px){.home{padding-top:2.5rem}.home-hero{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.25rem}.home-portrait{width:5.5rem}.site-header{align-items:flex-start}.header-actions{justify-content:space-between;align-items:flex-start;width:100%}.portfolio-featured-grid,.portfolio-archive-grid,.portfolio-older-archive-grid,.portfolio-card-compact{grid-template-columns:minmax(0,1fr)}.portfolio-card-compact .portfolio-card-media{aspect-ratio:16/9;border-bottom:1px solid var(--border);border-right:0}.project-gallery,.post-row{grid-template-columns:minmax(0,1fr)}.post-row .post-meta{text-align:left}.about-hero{grid-template-columns:minmax(0,1fr)}.about-photo{max-width:14rem}.about-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.about-notes{columns:1}.feedback-section-heading{flex-direction:column;align-items:stretch}.feedback-filter{flex-basis:auto;max-width:18rem}.feedback-board{scroll-snap-type:x proximity;grid-template-columns:none;grid-auto-columns:minmax(16rem,82vw);grid-auto-flow:column;margin-right:-1.2rem;padding-bottom:.5rem;padding-right:1.2rem;overflow-x:auto}.feedback-column{scroll-snap-align:start}}@media (width<=520px){.about-stats,.timeline-group li{grid-template-columns:minmax(0,1fr)}.timeline-group li{gap:.15rem}.feedback-page{padding-top:2.25rem}.feedback-field-row{grid-template-columns:minmax(0,1fr)}.feedback-form-footer{flex-direction:column;align-items:stretch}.feedback-submit{width:100%}}.site-shell-compact[data-astro-cid-z4jru4n3]{max-width:640px}.site-shell-compact[data-astro-cid-z4jru4n3] .site-footer[data-astro-cid-z4jru4n3]{padding:1.25rem 0 2rem;font-size:.8rem}.site-shell-compact[data-astro-cid-z4jru4n3] .footer-links[data-astro-cid-z4jru4n3] a[data-astro-cid-z4jru4n3]{align-items:center;min-height:2.75rem;display:inline-flex}
