@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(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}@font-face{font-family:Mona Sans;src:url(/fonts/monasans.woff2)format("woff2");font-weight:200 900;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f7f7f5)var(--lightningcss-dark,#1e1e1e);--ink:var(--lightningcss-light,#1a1a19)var(--lightningcss-dark,#f0f0ee);--ink-2:var(--lightningcss-light,#4a4a47)var(--lightningcss-dark,#b8b8b5);--ink-3:var(--lightningcss-light,#666663)var(--lightningcss-dark,#92928f);--fill:var(--lightningcss-light,#f7f7f48f)var(--lightningcss-dark,#2222228f);--fill-2:var(--lightningcss-light,#e2e2dea3)var(--lightningcss-dark,#343434a3);--fill-3:var(--lightningcss-light,#cdcdc8b8)var(--lightningcss-dark,#494949b8);--glass-surface:var(--lightningcss-light,#fffffc80)var(--lightningcss-dark,#1b1b1b80);--glass-edge:var(--lightningcss-light,#ffffffd1)var(--lightningcss-dark,#ffffff21);--glass-shadow:var(--lightningcss-light,0 14px 42px #1c1c1812)var(--lightningcss-dark,0 16px 48px #0003);--accent:var(--lightningcss-light,#b8552e)var(--lightningcss-dark,#d9784f);--accent-ink:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1e1e1e);--accent-wash:var(--lightningcss-light,#b8552e1f)var(--lightningcss-dark,#d9784f24);--danger:var(--lightningcss-light,#8a2f22)var(--lightningcss-dark,#ff9b8e);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--r-1:16px;--r-2:8px;--pill:999px;--glass-blur:blur(50px);--glass-bg:var(--lightningcss-light,#f7f7f5e0)var(--lightningcss-dark,#1e1e1ee0);--ctl:44px;--t-color:.2s;--ease:cubic-bezier(.22, 1, .36, 1);--font:"SF Pro Text", -apple-system, BlinkMacSystemFont, "Mona Sans", "Segoe UI", system-ui, sans-serif;--font-display:"SF Pro Display", var(--font);--f-body:13.5px;--f-small:12px;--f-label:11px;--f-lead:16px;font-family:var(--font);font-size:var(--f-body);letter-spacing:0;font-synthesis:none;font-kerning:normal;font-optical-sizing:auto;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-weight:400;line-height:1.25}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme-switching],[data-theme-switching] *,[data-theme-switching] :before,[data-theme-switching] :after{transition:background-color .3s cubic-bezier(.32,.72,0,1),color .3s cubic-bezier(.32,.72,0,1),border-color .3s cubic-bezier(.32,.72,0,1),fill .3s cubic-bezier(.32,.72,0,1),stroke .3s cubic-bezier(.32,.72,0,1),box-shadow .3s cubic-bezier(.32,.72,0,1),transform .3s cubic-bezier(.32,.72,0,1),width .3s cubic-bezier(.32,.72,0,1)!important}::view-transition-old(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-new(root){animation-duration:.3s;animation-timing-function:cubic-bezier(.32,.72,0,1)}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{min-width:320px;color:var(--ink);text-rendering:optimizelegibility;letter-spacing:-.01em;background:0 0;margin:0;overflow-x:clip}body,button,input,select,textarea{font:inherit}a{color:inherit;transition:color var(--t-color) var(--ease);text-decoration:none}@media (hover:hover){a:not(.nav-pill):not(.button):hover{color:var(--accent)}}img{max-width:100%;display:block}figure,p,dl,dd{margin:0}p{text-wrap:pretty}h1,h2,h3,.rail-info__title{text-wrap:balance}button,input,select,textarea{color:inherit}button{cursor:pointer}::selection{color:var(--accent-ink);background:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.skip-link{z-index:200;top:var(--s4);left:var(--s4);padding:var(--s3) var(--s4);color:var(--accent-ink);background:var(--accent);border-radius:var(--pill);position:fixed;transform:translateY(-180%)}.skip-link:focus{transform:none}.page{padding:var(--s2);padding-top:max(var(--s2), env(safe-area-inset-top));padding-right:max(var(--s2), env(safe-area-inset-right));padding-bottom:max(var(--s2), env(safe-area-inset-bottom));padding-left:max(var(--s2), env(safe-area-inset-left))}.ambient-shader{z-index:0;pointer-events:none;opacity:.76;width:100%;height:100%;position:fixed;inset:0}.page,.auth-shell,.app-shell{z-index:1;position:relative}.card{background:var(--glass-surface);border:1px solid var(--glass-edge);border-radius:var(--r-1);box-shadow:var(--glass-shadow)}.glass{background:var(--glass-surface)}.work-card,.auth-panel,.app-nav,.app-topbar,.app-section,.metric,.admin-project-row,.notice,.preview-code,.empty-state,.flash{background:var(--glass-surface);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.card,.glass,.work-card,.auth-panel,.app-nav,.app-topbar,.app-section,.metric,.admin-project-row,.notice,.preview-code,.empty-state,.flash{-webkit-backdrop-filter:blur(28px)saturate(114%)}}.wordmark{letter-spacing:-.025em;font-weight:650}.eyebrow{color:var(--ink-3);font-size:var(--f-label);letter-spacing:.06em;text-transform:uppercase;font-weight:600;line-height:1.2}.text-link{color:var(--ink-2);transition:color var(--t-color) var(--ease);text-decoration:none}.link-with-arrow,.work-card__title{align-items:center;gap:.35em;width:fit-content;display:inline-flex}.arrow-icon{width:.82em;height:.82em;transition:transform .28s var(--ease);flex:none;overflow:visible}@media (hover:hover){.text-link:hover{color:var(--accent)}a:hover .arrow-icon--external{transform:translate(2px,-2px)}a:hover .arrow-icon--right{transform:translate(3px)}a:hover .arrow-icon--left{transform:translate(-3px)}}.nav-pill,button,.button{min-height:var(--ctl);padding:0 var(--s4);border-radius:var(--pill);background:var(--fill);transition:background-color var(--t-color) var(--ease), color var(--t-color) var(--ease), filter .24s var(--ease);border:0;justify-content:center;align-items:center;display:inline-flex}.nav-pill:hover{background:var(--fill-2)}.nav-pill--primary{color:var(--accent-ink);background:var(--accent);font-weight:600}.nav-pill--primary:hover{background:var(--accent);filter:brightness(1.07)}.shell-layout{align-items:stretch;gap:var(--s2);flex-direction:column;display:flex}.rail{display:contents}.rail-identity{order:1}.rail-services{order:2}.rail-nav{order:3;width:100%}.rail-info{order:4}.rail-lab{order:5}main{order:6}.rail-identity,.rail-services,.rail-info{padding:var(--s4)}.rail-identity{gap:var(--s4);display:grid}.rail-where{color:var(--ink-3);font-size:var(--f-small)}.rail-identity h1{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:650;line-height:1.2}.rail-headline{gap:var(--s3);display:grid}.rail-lede{max-width:30ch;color:var(--ink-2);line-height:1.45}.rail-nav{align-items:center;gap:var(--s2);padding:var(--s2);display:flex}.rail-nav .nav-pill{min-width:0;padding-inline:var(--s3);flex:1}.rail-nav [aria-current=page]{background:var(--fill-3)}.theme-toggle{width:calc(var(--ctl) * 1.6 + 2px);min-width:calc(var(--ctl) * 1.6 + 2px);min-height:var(--ctl);background:0 0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.theme-toggle__track{width:calc(var(--ctl) * 1.6);height:var(--ctl);border-radius:var(--pill);background:var(--fill-3);transition:background-color .28s cubic-bezier(.32,.72,0,1);position:relative;box-shadow:inset 0 0 0 .5px #00000014}.theme-toggle[aria-checked=true] .theme-toggle__track{background:var(--accent)}.theme-toggle__track i{width:calc(var(--ctl) - 4px);height:calc(var(--ctl) - 4px);background:#fff;border-radius:50%;transition:transform .28s cubic-bezier(.32,.72,0,1),width .18s cubic-bezier(.32,.72,0,1);position:absolute;top:2px;left:2px;box-shadow:0 3px 8px #00000026,0 1px 2px #00000047}.theme-toggle[aria-checked=true] .theme-toggle__track i{transform:translateX(calc(var(--ctl) * .6))}.theme-toggle:active .theme-toggle__track i{width:var(--ctl)}.theme-toggle[aria-checked=true]:active .theme-toggle__track i{transform:translateX(calc(var(--ctl) * .6 - 4px))}.rail-info{gap:var(--s3);display:grid}.rail-info__title{max-width:24ch;font-weight:600;line-height:1.35}.rail-info__copy{color:var(--ink-2);line-height:1.45}.rail-info__stats{gap:var(--s2);padding:var(--s2) 0;font-variant-numeric:tabular-nums;display:grid}.rail-info__stats div{justify-content:space-between;gap:var(--s4);font-size:var(--f-small);display:flex}.rail-info__contact-intro{color:var(--ink-2);padding-top:var(--s2);line-height:1.45}.rail-info__contact{gap:var(--s2);display:grid}.contact-item{justify-content:space-between;align-items:center;gap:var(--s2);min-height:36px;padding:0 var(--s1) 0 var(--s3);background:var(--fill);border-radius:var(--r-2);display:flex}.contact-item>a{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.contact-copy{min-height:28px;padding:0 var(--s2);color:var(--ink-3);font-size:var(--f-label);background:0 0;flex:none;font-weight:600}.contact-copy:hover{color:var(--accent);background:var(--fill-2);transform:none}.contact-call{margin-top:var(--s1);color:var(--ink-2);font-size:var(--f-small)}.rail-lab{align-items:center;gap:var(--s3);min-height:72px;padding:var(--s3);transition:background-color var(--t-color), border-color var(--t-color);display:flex}.rail-lab__icon{border-radius:12px;flex:none;width:48px;height:48px;box-shadow:0 4px 12px #00000029}.rail-lab__body{flex:1;gap:3px;min-width:0;display:grid}.rail-lab__body strong{font-size:var(--f-body);font-weight:600}.rail-lab__body small{color:var(--ink-3);font-size:var(--f-small);line-height:1.3}.rail-lab>.arrow-icon{color:var(--ink-3)}@media (hover:hover){.rail-info__contact a:hover{color:var(--accent)}.rail-lab:hover{background:var(--fill-2);border-color:color-mix(in srgb, var(--accent) 24%, var(--glass-edge))}}.stream{gap:var(--s2);min-width:0;display:grid}.hero-copy{white-space:pre-line;color:var(--ink-2);line-height:1.35}.project-list{gap:var(--s2);grid-template-columns:1fr;margin:0;padding:0;list-style:none;display:grid}.work-card{background:var(--fill);border-radius:var(--r-1);height:100%;transition:background-color var(--t-color) var(--ease), border-color var(--t-color) var(--ease), box-shadow .3s var(--ease);display:block;overflow:hidden}.work-card__media{aspect-ratio:4/3;border-radius:var(--r-1) var(--r-1) 0 0;overflow:hidden}.work-card__media img{object-fit:cover;width:100%;height:100%}.work-card__foot{justify-content:space-between;gap:var(--s3);min-height:68px;padding:var(--s3) var(--s4) var(--s4);flex-direction:column;display:flex}.work-card__title{font-family:var(--font-display);font-size:var(--f-lead);letter-spacing:.25px;font-weight:400;line-height:1.3}.work-card__meta{color:var(--ink-3);font-size:var(--f-small)}@media (hover:hover){.work-card:hover{background:var(--fill-2);border-color:color-mix(in srgb, var(--accent) 34%, var(--glass-edge));box-shadow:0 18px 46px color-mix(in srgb, var(--accent) 8%, transparent)}}dt{color:var(--ink-3)}dd{font-variant-numeric:tabular-nums}.app-body{min-height:100svh;padding:var(--s2);padding-top:max(var(--s2), env(safe-area-inset-top));padding-bottom:max(var(--s2), env(safe-area-inset-bottom));padding-left:max(var(--s2), env(safe-area-inset-left));padding-right:max(var(--s2), env(safe-area-inset-right))}.auth-shell{place-items:center;min-height:calc(100svh - 16px);display:grid}.auth-panel{width:min(100%,400px);padding:var(--s4);background:var(--fill);border-radius:var(--r-1)}.auth-panel h1{margin:var(--s4) 0 var(--s2);letter-spacing:-.01em;font-size:17px;font-weight:650;line-height:1.25}.muted{color:var(--ink-2);line-height:1.45}.stack-form{gap:var(--s2);margin:var(--s6) 0;display:grid}.stack-form label,.field label{color:var(--ink-3);font-size:var(--f-label);letter-spacing:.06em;text-transform:uppercase;font-weight:600}input,select,textarea{width:100%;min-height:var(--ctl);padding:0 var(--s3);border-radius:var(--r-2);background:var(--fill-2);transition:background-color var(--t-color);border:0;outline:0;font-size:16px}textarea{min-height:104px;padding-block:var(--s3);resize:vertical}input:hover,select:hover,textarea:hover,input:focus,select:focus,textarea:focus{background:var(--fill-3)}button,.button{color:var(--bg);background:var(--ink);font-weight:650}.stack-form button{margin-top:var(--s2)}.auth-panel .stack-form button{color:var(--accent-ink);background:var(--accent)}.notice,.preview-code,.empty-state,.flash{padding:var(--s3);background:var(--fill);border-radius:var(--r-2);color:var(--ink-2);font-size:var(--f-small);line-height:1.4}.auth-notice-reveal{margin-top:var(--s5);opacity:1;animation:auth-notice-in .55s var(--ease) both;grid-template-rows:1fr;display:grid}.auth-notice-reveal>.notice{min-height:0;overflow:hidden}@keyframes auth-notice-in{0%{opacity:0;grid-template-rows:0fr;margin-top:0}}.preview-code{margin-top:var(--s2);justify-content:space-between;align-items:baseline;display:flex}.preview-code strong{color:var(--ink);letter-spacing:.15em;font-variant-numeric:tabular-nums;font-size:18px}.form-error{color:var(--danger)}.auth-panel>.text-link{font-size:var(--f-small)}.app-shell{gap:var(--s2);grid-template-columns:1fr;min-height:calc(100svh - 16px);display:grid}.app-nav{height:auto;padding:var(--s4);border-radius:var(--r-1);align-items:center;gap:var(--s4);flex-direction:row;display:flex;position:static}.app-nav .nav-context{margin:var(--s2) 0 0;color:var(--ink-2);font-size:var(--f-small);line-height:1.4}.app-nav-actions{gap:var(--s2);grid-template-columns:auto 1fr;margin-left:auto;display:grid}.app-nav-actions form,.app-nav-actions form button{width:100%}.app-nav form button{color:var(--ink);background:var(--fill)}.app-main{min-width:0}.app-topbar{z-index:20;top:var(--s2);justify-content:space-between;align-items:flex-start;gap:var(--s2);min-height:56px;padding:var(--s3) var(--s4);border-radius:var(--r-1);flex-direction:column;display:flex;position:sticky}.app-topbar h1{font-size:var(--f-body);margin:0;font-weight:650}.app-topbar p{color:var(--ink-2);font-size:var(--f-small);margin:0}.workspace{padding:0 0 var(--s8)}.app-section{margin-top:var(--s2);padding:var(--s5) var(--s4);background:var(--fill);border-radius:var(--r-1)}.app-section-header{justify-content:space-between;align-items:baseline;gap:var(--s4);margin-bottom:var(--s5);display:flex}.app-section h2{font-size:var(--f-lead);letter-spacing:-.02em;margin:0;font-weight:500}.app-section-header p{color:var(--ink-2);font-size:var(--f-small);margin:0}.metric-ledger{gap:var(--s2);grid-template-columns:1fr;display:grid}.metric{min-height:120px;padding:var(--s4);background:var(--fill);border-radius:var(--r-2);flex-direction:column;justify-content:space-between;display:flex}.metric dt{font-size:var(--f-label);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.metric dd{text-align:left;letter-spacing:-.025em;font-size:22px}.progress-track{height:6px;margin-top:var(--s4);background:var(--fill-2);border-radius:var(--pill);overflow:hidden}.progress-track i{background:var(--accent);border-radius:inherit;height:100%;display:block}.ledger-table{border-collapse:separate;width:100%;border-spacing:0 var(--s1);font-size:var(--f-small);display:block;overflow-x:auto}.ledger-table th{padding:var(--s2);color:var(--ink-3);font-size:var(--f-label);text-align:left;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.ledger-table td{padding:var(--s3) var(--s2);vertical-align:top;background:var(--fill);transition:background-color var(--t-color);line-height:1.35}.ledger-table td:first-child{border-radius:var(--r-2) 0 0 var(--r-2)}.ledger-table td:last-child{border-radius:0 var(--r-2) var(--r-2) 0}.ledger-table tr:hover td{background:var(--fill-2)}.align-right{font-variant-numeric:tabular-nums;text-align:right!important}.status{min-height:26px;padding:0 var(--s3);background:var(--fill-2);border-radius:var(--pill);text-transform:uppercase;letter-spacing:.05em;align-items:center;font-size:10px;font-weight:600;display:inline-flex}.timeline{padding:0 0 0 var(--s4);border-left:1px solid var(--fill-3);margin:0;list-style:none}.timeline li{gap:var(--s1);padding:0 0 var(--s5) var(--s4);grid-template-columns:1fr;display:grid;position:relative}.timeline .timeline-meta{grid-row:1}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";background:var(--bg);width:9px;height:9px;box-shadow:inset 0 0 0 2px var(--fill-3);border-radius:50%;position:absolute;top:4px;left:-5px}.timeline li:first-child:before{background:var(--accent);box-shadow:none}.timeline time,.timeline .timeline-meta{color:var(--ink-3);font-size:var(--f-label);font-variant-numeric:tabular-nums}.timeline h3{margin:0 0 var(--s1);font-size:var(--f-body)}.timeline p{color:var(--ink-2);font-size:var(--f-small);line-height:1.4}.empty-state{padding:var(--s5)}.flash{margin-top:var(--s2);border-left:3px solid var(--accent)}.admin-projects{gap:var(--s2);margin:0;padding:0;list-style:none;display:grid}.admin-project-row{gap:var(--s3);min-height:52px;padding:var(--s3);background:var(--fill);border-radius:var(--r-2);transition:background-color var(--t-color);grid-template-columns:1fr auto;align-items:center;display:grid}.admin-project-row span:nth-child(n+3){display:none}.admin-project-row:hover{background:var(--fill-2)}.admin-project-row span:not(:first-child){color:var(--ink-2);font-size:var(--f-small)}.admin-project-row strong{font-weight:600}.admin-grid{gap:var(--s2);grid-template-columns:1fr;align-items:start;display:grid}.editor-form{gap:var(--s4);grid-template-columns:1fr;display:grid}.editor-form .span-2{grid-column:1}.field{gap:var(--s2);display:grid}.editor-form button{justify-self:start}.form-note{color:var(--ink-2);font-size:var(--f-small);line-height:1.4}.app-section>.editor-form+.ledger-table,.app-section>.editor-form+.empty-state{margin-top:var(--s5)}@media (width>=721px){:root{--ctl:40px;--f-body:14px;--f-lead:18px}body{letter-spacing:-.006em}input,select,textarea{font-size:inherit}.project-list{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card__foot{min-height:72px}.work-card__title{letter-spacing:.15px;line-height:1.35}.auth-panel{padding:var(--s5)}.app-topbar{align-items:center;gap:var(--s4);flex-direction:row}.metric-ledger{grid-template-columns:1fr 1fr}.timeline li{gap:var(--s4);grid-template-columns:120px 1fr auto}.timeline .timeline-meta{grid-row:auto}.admin-grid,.editor-form{grid-template-columns:1fr 1fr}.editor-form .span-2{grid-column:1/-1}.admin-project-row{grid-template-columns:1.4fr 1fr repeat(3,.55fr) auto}.admin-project-row span:nth-child(n+3){display:inline}.ledger-table{display:table;overflow:visible}}@media (width>=901px){.shell-layout{grid-template-columns:clamp(280px,24vw,360px) minmax(0,1fr);align-items:start;display:grid}.rail{top:var(--s2);align-content:start;gap:var(--s2);overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--ink-3) 35%, transparent) transparent;grid-auto-rows:max-content;height:calc(100dvh - 16px);display:grid;position:sticky;overflow:hidden auto}.rail::-webkit-scrollbar{width:4px}.rail::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ink-3) 35%, transparent);border-radius:var(--pill)}.rail::-webkit-scrollbar-track{background:0 0}.rail-nav,.rail-identity,.rail-services,.rail-info,.rail-lab,main{order:initial}.rail-nav{width:auto}.rail-identity{gap:var(--s5)}.app-shell{grid-template-columns:240px minmax(0,1fr)}.app-nav{top:var(--s2);flex-direction:column;justify-content:space-between;align-items:stretch;height:calc(100svh - 16px);position:sticky}.app-nav .nav-context{margin:var(--s6) 0 0}.app-nav-actions{margin-left:0}.metric-ledger{grid-template-columns:repeat(4,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}.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}
