@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/f4b234103afdc32a-s.11x_mcju407z-.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/0b60d5f95c5f3f76-s.456c9vb2_utt8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/8056169c9d560660-s.p.2fl0vhx7oyatw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/f4b234103afdc32a-s.11x_mcju407z-.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/0b60d5f95c5f3f76-s.456c9vb2_utt8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/8056169c9d560660-s.p.2fl0vhx7oyatw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.CVo0oa_className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.CVo0oa_variable{--font-display:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/44ed10da57ebfb0e-s.2e4y-bhazgt_v.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/73263b2957b73100-s.3o0_l_yqebdng.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/ab664c0e419cc841-s.2mglm451ism6l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/6fca7e74603dd412-s.3bjsqkuy1d2v8.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/c1b11b726b36a5e5-s.0xluf1kzv7x5w.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/48eea41d8317494f-s.p.45487z7p3r8wm.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.v7m39G_className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.v7m39G_variable{--font-body:"IBM Plex Sans", "IBM Plex Sans Fallback"}
:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f4f8;--surface:#fff;--surface-2:#e9edf4;--ink:#13203a;--muted:#5a6578;--line:#d7dde7;--accent:#2b57e0;--accent-ink:#fff;--accent-soft:#e3eafd;--ok:#0e8f7e;--warn:#b4570c;--grid:#2b57e014}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1424;--surface:#152038;--surface-2:#1c2a47;--ink:#e6ecf6;--muted:#9aa7bd;--line:#26365a;--accent:#7e9cff;--accent-ink:#0d1424;--accent-soft:#22325c;--ok:#4cc9b4;--warn:#f0a55e;--grid:#7e9cff17}@media (prefers-color-scheme:dark){:root:not([data-theme]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1424;--surface:#152038;--surface-2:#1c2a47;--ink:#e6ecf6;--muted:#9aa7bd;--line:#26365a;--accent:#7e9cff;--accent-ink:#0d1424;--accent-soft:#22325c;--ok:#4cc9b4;--warn:#f0a55e;--grid:#7e9cff17}}:root{--fs-xs:.8rem;--fs-sm:.9rem;--fs-base:1rem;--fs-lg:1.2rem;--fs-xl:1.6rem;--fs-2xl:clamp(2.2rem, 5vw, 3.6rem);--r-sm:10px;--r-md:20px;--r-lg:28px;--gap:16px;--page-pad:clamp(16px, 4vw, 40px);--max-w:1200px}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-body), system-ui, sans-serif;font-size:var(--fs-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}h1,h2,h3{font-family:var(--font-display), system-ui, sans-serif;margin:0;line-height:1.1}p{margin:0}@layer base{a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}button,input,textarea,select{font:inherit;color:var(--ink)}input:not([type=range],[type=radio],[type=checkbox]),textarea,select{background:var(--surface);border:1px solid var(--muted);border-radius:var(--r-sm);padding:.5em .75em}input:is([type=range],[type=radio],[type=checkbox]){accent-color:var(--accent)}textarea{resize:vertical}button{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;padding:.5em 1em}button:hover:not(:disabled){border-color:var(--accent)}button:disabled,input:not([type=range],[type=radio],[type=checkbox]):disabled,textarea:disabled,select:disabled{color:var(--muted);background:var(--surface-2);cursor:not-allowed}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 8px var(--accent-soft)}@media (forced-colors:active){:focus-visible{outline-offset:2px;box-shadow:none;outline:2px solid highlight}}.page{max-width:var(--max-w);padding:var(--page-pad);margin:0 auto}.topbar{margin-bottom:var(--gap);justify-content:flex-end;display:flex}.theme-toggle{justify-content:center;align-items:center;width:40px;height:40px;padding:0;display:inline-flex}.theme-toggle__icon{width:20px;height:20px;display:block}.theme-toggle__icon--moon,:root[data-theme=dark] .theme-toggle__icon--sun{display:none}:root[data-theme=dark] .theme-toggle__icon--moon{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme]) .theme-toggle__icon--sun{display:none}:root:not([data-theme]) .theme-toggle__icon--moon{display:block}}.bento{gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.tile{grid-column:span var(--span,12);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);min-width:0;padding:clamp(20px,3vw,32px)}.tile--lg{border-radius:var(--r-lg)}@media (max-width:1024px){.bento{grid-template-columns:repeat(6,minmax(0,1fr))}.tile{grid-column:span var(--span-md,6)}}@media (max-width:720px){.bento{grid-template-columns:minmax(0,1fr)}.tile{grid-column:1/-1}.bento>.tile--hero{order:-2}.bento>.tile--estimator{order:-1}}@media (prefers-reduced-motion:no-preference){@keyframes tile-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes tile-rise{0%{transform:translateY(8px)}to{transform:none}}.bento>.tile{animation:tile-in .4s ease-out var(--tile-delay,0s) backwards}.bento>.tile--hero,.bento>.tile--now{animation-name:tile-rise}.bento>.tile:nth-child(2){--tile-delay:40ms}.bento>.tile:nth-child(3){--tile-delay:80ms}.bento>.tile:nth-child(4){--tile-delay:.12s}.bento>.tile:nth-child(5){--tile-delay:.16s}.bento>.tile:nth-child(6){--tile-delay:.2s}.bento>.tile:nth-child(7){--tile-delay:.24s}.bento>.tile:nth-child(8){--tile-delay:.28s}.bento>.tile:nth-child(9){--tile-delay:.32s}.bento>.tile:nth-child(10){--tile-delay:.36s}.bento>.tile:nth-child(11){--tile-delay:.4s}.bento>.tile:nth-child(n+12){--tile-delay:.44s}}.tile__title{font-size:var(--fs-xl)}.tile>*+*{margin-top:.75em}:where(.tile) h3{font-size:var(--fs-base);margin-bottom:.5em}:where(.tile) ul,:where(.tile) ol{margin-block:0;padding-left:1.25em}:where(.tile) li+li{margin-top:.4em}:where(.tile) dl,:where(.tile) dd{margin:0}.muted,.tile__meta{color:var(--muted);font-size:var(--fs-sm)}.tile--hero{column-gap:var(--gap);grid-template-columns:auto minmax(0,1fr);align-content:start;display:grid}.tile--hero>*{grid-column:1/-1}.tile--hero>.hero__name{font-size:var(--fs-2xl);grid-area:1/2;align-self:end}.tile--hero>.hero__avatar{border-radius:var(--r-md);background:var(--accent-soft);width:72px;height:72px;color:var(--accent);font-family:var(--font-display), system-ui, sans-serif;font-size:var(--fs-xl);grid-area:1/1/span 2;align-self:center;place-items:center;margin-top:0;font-weight:600;line-height:1;display:grid}.tile--hero>.hero__role{color:var(--muted);grid-area:2/2;align-self:start;margin-top:.25em}.tile--hero>.hero__headline{font-size:var(--fs-lg);margin-top:1.25em;line-height:1.4}.hero__meta{flex-wrap:wrap;gap:.25em 1.25em;display:flex}.hero__availability{align-items:center;gap:.5em;display:inline-flex}.hero__dot{background:var(--ok);border-radius:50%;flex:none;width:9px;height:9px}@media (forced-colors:active){.hero__avatar{border:1px solid canvastext}.hero__dot{forced-color-adjust:none;background:canvastext}}.tile--now{container:now/inline-size}.now__title{font-weight:600}.now__org{color:var(--muted)}.tile--now>.stats{margin-top:1.5em}.stats{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stats__item{min-width:0;padding-inline:var(--gap);flex-direction:column-reverse;justify-content:flex-end;gap:.35em;display:flex}.stats__item:first-child{padding-inline-start:0}.stats__item:last-child{padding-inline-end:0}.stats__item+.stats__item{border-inline-start:1px solid var(--line)}.stats__value{font-family:var(--font-display), system-ui, sans-serif;font-size:var(--fs-xl);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600;line-height:1.1}.stats__label{font-size:var(--fs-sm);color:var(--muted);line-height:1.4}@container now (max-width:360px){.stats{grid-template-columns:minmax(0,1fr)}.stats__item{flex-direction:row-reverse;justify-content:flex-end;align-items:baseline;gap:.75em;padding-block:.75em;padding-inline:0}.stats__item:first-child{padding-block-start:0}.stats__item:last-child{padding-block-end:0}.stats__item+.stats__item{border-inline-start:0;border-block-start:1px solid var(--line)}.stats__value{flex:none;min-width:2.25em}}.project__tagline{font-size:var(--fs-lg);font-weight:600;line-height:1.4}.project__highlights>li+li{margin-top:.25em}.tile>.project__links{gap:.5em var(--gap);flex-wrap:wrap;margin-top:1.25em;padding:0;list-style:none;display:flex}.project__links>li{margin:0}.workflow{padding-left:1.6em;list-style-position:outside}.workflow>li+li{margin-top:.9em}.workflow>li::marker{font-family:var(--font-display), system-ui, sans-serif;font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.workflow__step{font-weight:600;display:block}.tile--case{flex-direction:column;display:flex}.case__body{flex-grow:1}.tile--experience{container:experience/inline-size}.timeline{padding:0;list-style:none}.timeline>li+li{margin-top:0}.timeline__item{column-gap:var(--gap);grid-template-columns:7.5em minmax(0,1fr);align-items:baseline;display:grid}.timeline__period{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--muted)}.timeline__body{border-inline-start:1px solid var(--line);flex-direction:column;padding-block-end:.9em;padding-inline-start:var(--gap);display:flex}.timeline__item:last-child>.timeline__body{padding-block-end:0}.timeline__org{font-weight:600}.experience__label,.stack__heading{font-size:var(--fs-sm);font-weight:600}.tile>.experience__label{margin-top:1.5em;margin-bottom:0}.tile>.experience__label+p{margin-top:.35em}@container experience not (min-width:420px){.timeline__item{border-inline-start:1px solid var(--line);padding-block-end:.9em;padding-inline-start:var(--gap);display:block}.timeline__item:last-child{padding-block-end:0}.timeline__period{display:block}.timeline__body{border:0;padding:0}}.tile>.stack__group+.stack__group{margin-top:1.25em}.certs{padding:0;list-style:none}.certs>li+li{border-block-start:1px solid var(--line);margin-top:0}.certs__item{justify-content:space-between;align-items:baseline;gap:var(--gap);padding-block:.6em;display:flex}.certs__item:first-child{padding-block-start:0}.certs__item:last-child{padding-block-end:0}.certs__year{font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--muted);flex:none}.tile>.contact__primary{margin-top:1.25em}.button-link{background:var(--accent);max-width:100%;color:var(--accent-ink);border-radius:var(--r-sm);overflow-wrap:anywhere;border:1px solid #0000;padding:.65em 1.25em;font-weight:600;line-height:1.3;text-decoration:none;display:inline-block}.button-link:hover{text-decoration:underline;text-decoration-thickness:2px}.tile>.contact__links{gap:.5em var(--gap);flex-wrap:wrap;margin-top:1em;padding:0;list-style:none;display:flex}.contact__links>li{margin:0}@media (forced-colors:active){.button-link{border-color:linktext}}.chips{gap:calc(var(--gap) / 2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.chips>li{font-size:var(--fs-sm);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);margin:0;padding:.2em .7em;line-height:1.4}.estimator__form{gap:var(--gap);flex-direction:column;display:flex}.estimator__examples{gap:calc(var(--gap) / 2);flex-wrap:wrap;display:flex}.estimator__chip{font-size:var(--fs-sm);text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:.3em .9em;line-height:1.4}.estimator__field{flex-direction:column;gap:.35rem;display:flex}.estimator__label{font-size:var(--fs-sm);color:var(--ink);padding:0;font-weight:600}.estimator__textarea{width:100%;min-height:6rem}.estimator__count{font-size:var(--fs-sm);text-align:right;color:var(--muted);margin:0}.estimator__count[data-warn=true]{color:var(--warn)}.turnstile__error{font-size:var(--fs-sm);color:var(--warn);margin:0}.estimator__row{justify-content:space-between;align-items:baseline;gap:var(--gap);display:flex}.estimator__readout{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:700}.estimator__slider{appearance:none;background:0 0;width:100%;height:1.5rem;margin:0}.estimator__slider::-webkit-slider-runnable-track{background:var(--surface-2);border:1px solid var(--muted);border-radius:999px;height:6px}.estimator__slider::-moz-range-track{background:var(--surface-2);border:1px solid var(--muted);border-radius:999px;height:6px}.estimator__slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:1.25rem;height:1.25rem;margin-top:calc(2px - .625rem)}.estimator__slider::-moz-range-thumb{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:1.25rem;height:1.25rem}.estimator__slider:disabled{cursor:not-allowed}.estimator__slider:disabled::-webkit-slider-thumb{background:var(--muted)}.estimator__slider:disabled::-moz-range-thumb{background:var(--muted)}.estimator__seniority{border:0;min-width:0;margin:0;padding:0}.estimator__seniority legend{margin-bottom:.35rem}.estimator__segments{border:1px solid var(--muted);border-radius:var(--r-sm);background:var(--surface);grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.estimator__segment{cursor:pointer;display:block;position:relative}.estimator__segment input{opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.estimator__segment span{text-align:center;text-transform:capitalize;color:var(--ink);padding:.5em;display:block}.estimator__segment+.estimator__segment span{border-left:1px solid var(--line)}.estimator__segment:has(input:checked) span{background:var(--accent);color:var(--accent-ink);font-weight:600}.estimator__segment:has(input:focus-visible){z-index:1;outline:2px solid var(--accent);outline-offset:-2px;box-shadow:inset 0 0 0 4px var(--accent-soft)}.estimator__seniority:disabled .estimator__segment{cursor:not-allowed}.estimator__seniority:disabled .estimator__segment span{color:var(--muted)}.estimator__seniority:disabled .estimator__segment:has(input:checked) span{background:var(--surface-2);color:var(--ink)}@media (max-width:360px){.estimator__segments{grid-template-columns:repeat(2,1fr)}.estimator__segment+.estimator__segment span{border-left:0}.estimator__segment:nth-child(2n) span{border-left:1px solid var(--line)}.estimator__segment:nth-child(n+3) span{border-top:1px solid var(--line)}}@media (prefers-reduced-motion:no-preference){.estimator__chip,.estimator__segment span{transition:background-color .15s,border-color .15s,color .15s}}@media (forced-colors:active){.estimator__segment:has(input:focus-visible){box-shadow:none;outline-color:highlight}.estimator__segment:has(input:checked) span{outline-offset:-4px;outline:2px solid highlight}}.estimator__lock{gap:var(--gap);border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.estimator__error{font-size:var(--fs-sm);color:var(--warn);margin:0}.estimator__textarea[aria-invalid=true]{border-color:var(--warn)}.estimator__results{gap:calc(var(--gap) / 2);margin-top:var(--gap);flex-direction:column;display:flex}.estimator__status{font-size:var(--fs-sm);color:var(--muted);margin:0}.estimator__status:empty{display:none}.estimator__skeleton{flex-direction:column;gap:.6rem;display:flex}.estimator__bone{background:var(--surface-2);border-radius:var(--r-sm);height:.9rem;display:block}.estimator__bone--title{width:55%;height:1.4rem}.estimator__bone--short{width:70%}.estimator__bone--block{height:5rem}@media (prefers-reduced-motion:no-preference){.estimator__bone{background:linear-gradient(90deg, var(--surface-2) 0%, var(--line) 50%, var(--surface-2) 100%);background-size:200% 100%;animation:1.6s ease-in-out infinite bone-shimmer}@keyframes bone-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}}.estimator__banner{align-items:center;gap:calc(var(--gap) / 2) var(--gap);background:var(--surface-2);border:1px solid var(--line);border-left:4px solid var(--ink);border-radius:var(--r-sm);flex-wrap:wrap;padding:.75rem 1rem;display:flex}.estimator__banner[data-tone=warn]{border-color:var(--warn);border-left-color:var(--warn)}.estimator__banner p{font-size:var(--fs-sm);flex:14rem;margin:0}.estimator__note{font-size:var(--fs-sm);color:var(--muted);margin:0}.rtabs__list{border-bottom:1px solid var(--line);display:flex}.rtabs__tab{min-height:44px;color:var(--muted);font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:1 1 0;margin-bottom:-1px;padding:8px 12px;font-weight:600;line-height:1.25}@media (min-width:721px){.rtabs__tab{flex:none;padding-inline:20px}}.rtabs__tab:hover,.rtabs__tab[aria-selected=true]{color:var(--ink)}.rtabs__tab[aria-selected=true]{border-bottom-color:var(--accent)}@media (prefers-reduced-motion:no-preference){.rtabs__tab{transition:color .15s,border-color .15s}}.rtabs__panel{padding-top:16px}.rtabs__panel[hidden]{display:none}.skip-link{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link:focus{z-index:10;clip:auto;background:var(--surface);width:auto;height:auto;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 14px;top:8px;left:8px;overflow:visible}.tile[tabindex="-1"]:focus{box-shadow:none;outline:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tab2{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.tab2-chips{margin:0}.tab2-chips>li{font-variant-numeric:tabular-nums}.tab2-scroll{border:1px solid var(--line);border-radius:var(--r-sm);max-width:100%;overflow-x:auto}.tab2-table{border-collapse:collapse;width:100%;min-width:28rem;font-size:var(--fs-sm)}.tab2-table th,.tab2-table td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:.5rem .75rem}.tab2-table thead th{font-size:var(--fs-xs);color:var(--muted);border-top:0;font-weight:600}.tab2-table th:last-child,.tab2-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.tab2-table .tab2-phase th{text-align:left;background:var(--surface-2);font-weight:600}.tab2-table .tab2-sub th,.tab2-table .tab2-sub td,.tab2-table tfoot th,.tab2-table tfoot td{font-weight:600}.tab2-table tfoot th,.tab2-table tfoot td{border-top-width:2px}.results-phases{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.results-phases h4{font-size:var(--fs-base);margin:0}.tab1-summary{gap:calc(var(--gap) / 2);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.tab1-summary>div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;padding:.7rem .8rem}.tab1-summary dt{font-size:var(--fs-xs);color:var(--muted)}.tab1-summary dd{font-size:var(--fs-lg);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:.15rem 0 0}.tab1-badge{--tone:var(--muted);font-size:var(--fs-sm);text-transform:capitalize;color:var(--ink);border:1px solid var(--tone);border-radius:var(--r-sm);align-items:center;gap:.4rem;padding:.1rem .6rem;font-weight:600;display:inline-flex}.tab1-badge:before{content:"";background:var(--tone);border-radius:50%;width:.5rem;height:.5rem}.tab1-badge--low{--tone:var(--warn)}.tab1-badge--high{--tone:var(--ok)}.tab1-timeline{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.tab1-row{min-width:0}.tab1-cards>li,.tab1-timeline>li{margin-top:0}.tab1-row__head{font-size:var(--fs-sm);flex-wrap:wrap;justify-content:space-between;gap:0 .75rem;display:flex}.tab1-row__name{font-weight:600}.tab1-row__label{color:var(--muted);font-variant-numeric:tabular-nums}.tab1-track{background:var(--surface-2);border-radius:var(--r-sm);height:.75rem;margin-top:.25rem;position:relative;overflow:hidden}.tab1-weeks i{top:0;bottom:0;left:var(--left);background:var(--line);width:1px;position:absolute}.tab1-bar{top:0;bottom:0;left:var(--left);width:var(--width);background:var(--accent);border-radius:3px;position:absolute}@media (prefers-reduced-motion:no-preference){.tab1-bar{transform-origin:0;animation:.5s ease-out both tab1-grow}@keyframes tab1-grow{0%{transform:scaleX(0)}}}.tab1-cards{gap:calc(var(--gap) / 2);grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));margin:0;padding:0;list-style:none;display:grid}.tab1-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;padding:.8rem}.tab1-card p{font-size:var(--fs-sm);margin:.25rem 0 0}.tab1-card .tab1-card__meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:0 .75rem;display:flex}.tab1-lists{gap:var(--gap);grid-template-columns:minmax(0,1fr);display:grid}.tab1-list{font-size:var(--fs-sm);margin:.4rem 0 0;padding-left:1.1rem}.tab1-list--risks li::marker{color:var(--warn)}@media (min-width:720px){.tab1-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.tab1-lists{grid-template-columns:repeat(2,minmax(0,1fr))}}
