@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");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}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--container-6xl:72rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.max-w-6xl{max-width:var(--container-6xl)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.rounded-lg{border-radius:var(--radius-lg)}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing) * 4)}.text-wrap{text-wrap:wrap}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.project-flow{--flow:#2563eb;--flow-soft:#eef4ff;background:var(--surface-soft);color:var(--text);overflow:hidden}.project-flow[data-visual=pdptw]{--flow:#087f8c;--flow-soft:#eaf8f8}.project-flow[data-visual=facility]{--flow:#7047b7;--flow-soft:#f3effb}.project-flow[data-visual=vrptw]{--flow:#3157a4;--flow-soft:#edf2fb}.project-flow[data-visual=lagrangian]{--flow:#7c3fa0;--flow-soft:#f6eef9}.project-flow[data-visual=tsp]{--flow:#b5640d;--flow-soft:#fff5e8}.project-flow[data-visual=hospital]{--flow:#18805d;--flow-soft:#eaf7f1}.project-flow[data-visual=queue]{--flow:#087a9b;--flow-soft:#eaf7fb}.project-flow[data-visual=assignment]{--flow:#b84e19;--flow-soft:#fff0e8}.project-card>.project-flow,.repo-card>.project-flow{border-bottom:1px solid var(--border)}.flow-heading{border-bottom:1px solid var(--border);align-items:center;gap:.65rem;padding:.8rem 1rem;display:flex}.flow-heading span{background:var(--flow);min-width:38px;height:26px;color:var(--surface);border-radius:4px;place-items:center;padding-inline:.4rem;font:650 .68rem JetBrains Mono Variable,monospace;display:grid}.flow-heading strong{letter-spacing:-.01em;font-size:.8rem;font-weight:630}.flow-steps{grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr) 18px minmax(0,1fr);align-items:stretch;padding:1rem;display:grid}.flow-step{border:1px solid var(--flow);flex-direction:column;justify-content:center;align-items:center;gap:.25rem;min-width:0;min-height:76px;padding:.55rem .35rem;display:flex}@supports (color:color-mix(in lab, red, red)){.flow-step{border:1px solid color-mix(in srgb, var(--flow) 27%, var(--border))}}.flow-step{background:var(--flow);border-radius:7px}@supports (color:color-mix(in lab, red, red)){.flow-step{background:color-mix(in srgb, var(--flow) 7%, var(--surface))}}.flow-step{text-align:center}.flow-step>span{color:var(--flow);font:650 .65rem JetBrains Mono Variable,monospace}.flow-step>strong{font-size:.75rem;font-weight:650;line-height:1.25}.flow-step>small{color:var(--muted);font-size:.76rem;line-height:1.35}.flow-arrow{color:var(--flow);text-align:center;align-self:center;font-size:.95rem;font-style:normal}.flow-output{border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:1rem;padding:.72rem 1rem;display:flex}.flow-output span{color:var(--flow);letter-spacing:.08em;font:650 .62rem JetBrains Mono Variable,monospace}.flow-output strong{text-align:right;font-size:.77rem;font-weight:630}.project-flow--hero{border:1px solid var(--border);border-radius:10px}.project-flow--hero .flow-heading{padding:1rem 1.2rem}.project-flow--hero .flow-heading strong{font-size:1rem}.project-flow--hero .flow-steps{padding:1.4rem}.project-flow--hero .flow-step{min-height:128px;padding:.85rem .55rem}.project-flow--hero .flow-step>strong{font-size:.9rem}.project-flow--hero .flow-output{padding:1rem 1.2rem}.project-flow--hero .flow-output strong{font-size:.92rem}html[data-theme=dark] .project-flow{--flow:#83afff}html[data-theme=dark] .project-flow[data-visual=pdptw]{--flow:#69c4cc}html[data-theme=dark] .project-flow[data-visual=facility],html[data-theme=dark] .project-flow[data-visual=lagrangian]{--flow:#c4a0ee}html[data-theme=dark] .project-flow[data-visual=tsp],html[data-theme=dark] .project-flow[data-visual=assignment]{--flow:#eab17a}html[data-theme=dark] .project-flow[data-visual=hospital]{--flow:#78cfa9}html[data-theme=dark] .project-flow[data-visual=queue]{--flow:#7acade}.flow-heading span{color:var(--on-accent)}@media (width<=620px){.flow-steps{grid-template-columns:1fr;gap:.45rem}.flow-arrow{line-height:1;transform:rotate(90deg)}.project-flow--card .flow-steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem;padding:.75rem}.project-flow--card .flow-arrow{display:none}.project-flow--card .flow-step{min-height:68px;padding:.4rem .2rem}.project-flow--card .flow-step>span{font-size:.6rem}.project-flow--card .flow-step>strong{font-size:.7rem}.project-flow--hero .flow-step{min-height:90px}.flow-output{flex-direction:column;align-items:flex-start;gap:.25rem}.flow-output strong{text-align:left}}.brand-avatar{border:1px solid var(--border);object-fit:cover;object-position:center 35%;width:34px;height:34px}.about-hero{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:3rem;padding-block:56px;display:grid}.about-portrait{margin:0}.about-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 42%;filter:saturate(.9)contrast(1.02);border-radius:8px;width:100%;display:block}.about-intro h1{max-width:720px}.about-lead,.about-intro>p:not(.kicker){max-width:720px;color:var(--muted);font-size:1.08rem;line-height:1.75}.about-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2rem;display:flex}.about-story{border-top:1px solid var(--border);grid-template-columns:200px minmax(0,1fr);gap:3rem;padding-block:48px;display:grid}.about-story h2{max-width:500px}.about-story-copy p{color:var(--muted);margin:0 0 1.25rem;font-size:1.04rem;line-height:1.78}.about-background{border-top:1px solid var(--border);padding-block:88px}.project-page{padding-bottom:104px}.back-link{color:var(--muted);margin-top:2.5rem;font-size:.88rem;display:inline-block}.back-link:hover,.back-link:focus-visible{color:var(--accent)}.project-hero{max-width:860px;padding-block:36px}.project-hero h1{font-size:clamp(1.9rem,4vw,2.7rem)}.case-summary{max-width:780px;color:var(--muted);margin:0;font-size:clamp(1.08rem,2vw,1.25rem);line-height:1.7}.case-actions{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1.8rem;display:flex}.updated-label{color:var(--muted);font-size:.82rem}.project-tech{flex-wrap:wrap;gap:.45rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.project-tech li{background:var(--surface-soft);color:var(--muted);border-radius:4px;padding:.36rem .58rem;font-size:.78rem}.project-at-glance{border-top:1px solid var(--border);padding-block:52px}.glance-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.5rem;display:flex}.glance-heading h2{font-size:clamp(1.7rem,3vw,2.35rem)}.project-facts{border-block:1px solid var(--border);grid-template-columns:repeat(3,1fr);margin-bottom:78px;display:grid}.project-facts div{border-right:1px solid var(--border);text-align:center;padding:1.25rem}.project-facts div:first-child{text-align:left;padding-left:0}.project-facts div:last-child{border-right:0}.project-facts strong{color:var(--accent);font-size:.92rem;font-weight:650}.project-content-grid{grid-template-columns:minmax(0,760px) 230px;align-items:start;gap:clamp(3rem,8vw,6rem);display:grid}.project-document{min-width:0}.prose{max-width:70ch;color:var(--muted);font-size:1.02rem;line-height:1.78}.prose h2{letter-spacing:-.03em;margin:3.5rem 0 1rem;font-size:clamp(1.6rem,3vw,2rem)}.prose h2:first-child{margin-top:0}.prose h3{letter-spacing:-.02em;margin:2.6rem 0 .9rem;font-size:1.35rem}.prose h4{margin:2rem 0 .7rem}.prose p{margin:0 0 1.25rem}.prose strong{color:var(--text)}.prose ul,.prose ol{padding-left:1.35rem}.prose li{margin-block:.55rem;padding-left:.2rem}.prose a{color:var(--accent);border-bottom:1px solid #aac2f8}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin:1.5rem 0;padding:.3rem 1.2rem}.prose pre{color:#dce5ee;background:#10151b;border:1px solid #2a3440;border-radius:6px;max-width:100%;padding:1rem;font:.82rem/1.65 JetBrains Mono Variable,monospace;overflow-x:auto}.prose :not(pre)>code{background:var(--surface-soft);color:var(--text);border-radius:3px;padding:.15rem .3rem;font:.86em JetBrains Mono Variable,monospace}.prose table{border-collapse:collapse;max-width:100%;font-size:.9rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.65rem .8rem}.prose th{background:var(--surface-soft);color:var(--text)}.prose img{border:1px solid var(--border);background:#fff;border-radius:6px;max-width:100%;height:auto;margin-block:1.5rem;padding:.5rem;display:block}.curated-case{border-bottom:1px solid var(--border);margin-bottom:70px;padding-bottom:56px}.document-heading{border-block:1px solid var(--border);color:var(--muted);justify-content:space-between;gap:1rem;margin-bottom:1.2rem;padding-block:.75rem;font-size:.78rem;display:flex}.document-heading b{color:var(--accent);font-weight:650}.readme-section{padding-top:18px}.readme-section>h2{margin:0 0 2rem;font-size:1.9rem}.project-sidebar{border-top:1px solid var(--border);position:sticky;top:24px}.sidebar-block{border-bottom:1px solid var(--border);padding:1.15rem 0}.sidebar-block>span{color:var(--muted);margin-bottom:.65rem;font-size:.76rem;display:block}.sidebar-block ul{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.sidebar-block li{background:var(--surface-soft);color:var(--muted);border-radius:3px;padding:.28rem .42rem;font-size:.72rem}.sidebar-block a{overflow-wrap:anywhere;color:var(--accent);font-size:.82rem;line-height:1.5;display:block}.sidebar-block small{color:var(--muted);margin-top:.35rem;font-size:.72rem;display:block}.sidebar-block p{color:var(--text);margin:0;font-size:.82rem}.result-gallery{border-bottom:1px solid var(--border);margin:0 0 72px;padding-bottom:60px}.result-gallery h2{margin-bottom:1.5rem;font-size:1.9rem}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.result-figure{border:1px solid var(--border);background:var(--surface);border-radius:7px;min-width:0;margin:0;overflow:hidden}.result-figure>div{background:#f5f6f7;place-items:center;min-height:240px;padding:1rem;display:grid}.result-figure img{width:auto;max-width:100%;height:auto;max-height:520px;display:block}.result-figure figcaption{color:var(--muted);padding:.85rem 1rem;font-size:.8rem;line-height:1.5}@media (width<=900px){.about-hero{grid-template-columns:180px 1fr;gap:2rem}.project-content-grid{grid-template-columns:minmax(0,1fr)}.project-sidebar{border-top:0;grid-template-columns:repeat(3,1fr);gap:1rem;display:grid;position:static}.sidebar-block{border-block:1px solid var(--border)}}@media (width<=720px){.about-hero,.about-story{grid-template-columns:1fr;gap:1.75rem;padding-block:36px}.about-portrait{width:140px}.about-actions{flex-direction:column;align-items:flex-start}.about-background{padding-block:64px}.project-hero{padding-block:46px}.project-at-glance{padding-block:42px}.glance-heading{flex-direction:column;align-items:flex-start;gap:0}.project-facts{grid-template-columns:1fr;margin-bottom:60px}.project-facts div,.project-facts div:first-child{border-right:0;border-bottom:1px solid var(--border);text-align:left;padding:.9rem 0}.project-facts div:last-child{border-bottom:0}.project-sidebar,.result-grid{grid-template-columns:1fr}.result-figure>div{min-height:180px}}.portfolio-assistant{--assistant-accent:var(--accent);--assistant-border:var(--border);--assistant-muted:var(--muted);z-index:60;color:var(--text);position:relative}.assistant-launch{z-index:61;border:1px solid var(--border);background:var(--surface);width:auto;min-width:190px;min-height:48px;color:var(--text);cursor:pointer;backdrop-filter:blur(12px);text-align:left;border-radius:8px;grid-template-columns:minmax(0,1fr) 14px;align-items:center;gap:.75rem;padding:.65rem .8rem;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:fixed;bottom:22px;right:24px;box-shadow:0 10px 28px #1b273a29}.assistant-launch:hover,.assistant-launch:focus-visible,.portfolio-assistant.is-open .assistant-launch{border-color:var(--assistant-accent);background:var(--surface);transform:translateY(-2px);box-shadow:0 14px 34px #1b273a33}.assistant-launch>span{min-width:0}.assistant-launch strong,.assistant-launch small{display:block}.assistant-launch strong{letter-spacing:0;font:650 .8rem Inter Variable,sans-serif}.assistant-launch small{color:var(--muted);letter-spacing:0;margin-top:.08rem;font:.66rem Inter Variable,sans-serif}.assistant-launch>b{color:var(--assistant-accent);font-size:.9rem;font-weight:500}.assistant-panel{z-index:62;border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;width:min(680px,100vw - 48px);min-width:430px;height:min(720px,100svh - 112px);min-height:520px;transition:width .22s,height .22s,right .22s,bottom .22s;display:flex;position:fixed;bottom:84px;right:24px;overflow:hidden;box-shadow:0 28px 90px #1924343d}.assistant-panel[hidden]{display:none}.portfolio-assistant.is-expanded .assistant-panel{width:calc(100vw - 48px);height:calc(100svh - 48px);bottom:24px;right:24px}.assistant-head{border-bottom:1px solid var(--assistant-border);background:var(--surface);flex:none;justify-content:space-between;align-items:center;gap:1rem;min-height:76px;padding:1rem 1.1rem;display:flex}.assistant-head>div:first-child>span{color:var(--assistant-accent);letter-spacing:.08em;margin-bottom:.2rem;font:650 .68rem JetBrains Mono Variable,monospace;display:block}.assistant-head h2{color:var(--text);letter-spacing:-.025em;margin:0;font-size:1.22rem;font-weight:680}.assistant-head-actions{align-items:center;gap:.55rem;display:flex}.assistant-mode{color:var(--success);white-space:nowrap;align-items:center;gap:.4rem;display:flex}.assistant-mode i{background:var(--success);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #2ca7631a}.assistant-mode b{letter-spacing:0;font:650 .67rem Inter Variable,sans-serif}.assistant-mode.is-local{color:var(--warning)}.assistant-mode.is-local i{background:var(--warning);box-shadow:0 0 0 4px #d1871c1a}.assistant-close,.assistant-expand{border:1px solid var(--assistant-border);background:var(--surface);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:7px;place-items:center;padding:0;font:500 1rem/1 Inter Variable,sans-serif;display:grid}.assistant-close:hover,.assistant-close:focus-visible,.assistant-expand:hover,.assistant-expand:focus-visible{border-color:var(--assistant-accent);background:var(--accent-soft);color:var(--assistant-accent)}.assistant-context{display:none}.assistant-messages{background:var(--surface-soft);scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:auto;min-height:0;padding:1.15rem;overflow-y:auto}.assistant-message{border:1px solid var(--assistant-border);background:var(--surface);border-radius:9px;width:min(90%,540px);margin-bottom:.9rem;padding:.95rem 1rem;box-shadow:0 2px 7px #1e2d410a}.portfolio-assistant.is-expanded .assistant-message{width:min(78%,820px)}.assistant-message.is-user{border-color:var(--border-strong);background:var(--accent-soft);margin-left:auto}.assistant-message>span{color:var(--muted);margin-bottom:.4rem;font-size:.72rem;font-weight:650;display:block}.assistant-message.is-user>span{color:var(--assistant-accent)}.assistant-message p{color:var(--text);white-space:pre-wrap;margin:0;font-size:.96rem;line-height:1.65}.assistant-message.is-pending p{color:var(--muted)}.assistant-message.is-pending p:after{content:"";background:var(--assistant-accent);vertical-align:middle;border-radius:50%;width:5px;height:5px;margin-left:.45rem;animation:1.15s steps(3,end) infinite assistant-search;display:inline-block;box-shadow:9px 0 #2563eb80,18px 0 #2563eb3d}.assistant-sources{border-top:1px solid var(--border);flex-wrap:wrap;gap:.4rem;margin-top:.8rem;padding-top:.7rem;display:flex}.assistant-sources small{width:100%;color:var(--muted);font-size:.68rem;font-weight:650}.assistant-sources a{border:1px solid var(--border-strong);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:.3rem .48rem;font-size:.72rem}.assistant-sources a:hover,.assistant-sources a:focus-visible{border-color:var(--assistant-accent);background:var(--accent-soft)}.assistant-feedback{border-top:1px solid var(--border);align-items:center;gap:.35rem;margin-top:.7rem;padding-top:.6rem;display:flex}.assistant-feedback small{color:var(--muted);margin-right:auto;font-size:.68rem;font-weight:600}.assistant-feedback button{border:1px solid var(--border);background:var(--surface);width:31px;height:28px;color:var(--muted);cursor:pointer;border-radius:6px;padding:0}.assistant-feedback button:hover,.assistant-feedback button:focus-visible,.assistant-feedback button[aria-pressed=true]{border-color:var(--assistant-accent);background:var(--accent-soft);color:var(--assistant-accent)}.assistant-feedback button:disabled{cursor:default;opacity:.55}.assistant-suggestions{border-top:1px solid var(--border);background:var(--surface);scrollbar-width:none;flex:none;gap:.5rem;padding:.75rem 1.1rem;display:flex;overflow-x:auto}.assistant-suggestions::-webkit-scrollbar{display:none}.assistant-suggestions[hidden]{display:none}.assistant-suggestions button{border:1px solid var(--border);background:var(--surface);max-width:280px;color:var(--muted);cursor:pointer;text-align:left;border-radius:999px;flex:none;padding:.55rem .75rem;font:500 .76rem/1.35 Inter Variable,sans-serif}.assistant-suggestions button:hover,.assistant-suggestions button:focus-visible{border-color:var(--assistant-accent);background:var(--accent-soft);color:var(--accent)}.assistant-form{border-top:1px solid var(--assistant-border);background:var(--surface);flex:none;padding:.9rem 1.1rem .75rem}.assistant-form>label{color:var(--muted);margin-bottom:.45rem;font-size:.76rem;font-weight:650;display:block}.assistant-compose{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:minmax(0,1fr) 82px;display:grid;overflow:hidden}.assistant-compose:focus-within{border-color:var(--assistant-accent);box-shadow:0 0 0 3px #2563eb17}.assistant-compose textarea{resize:vertical;width:100%;min-height:76px;max-height:150px;color:var(--text);background:0 0;border:0;outline:0;padding:.8rem;font:.94rem/1.55 Inter Variable,sans-serif}.assistant-compose textarea::placeholder{color:var(--muted)}.assistant-compose button{background:var(--assistant-accent);color:var(--on-accent);cursor:pointer;border:0;border-left:1px solid #1d55bd;font:650 .82rem Inter Variable,sans-serif}.assistant-compose button:hover,.assistant-compose button:focus-visible{color:#fff;outline-offset:-3px;background:#174fb9}.assistant-compose button:disabled{cursor:wait;opacity:.5}.assistant-compose button b{display:none}.assistant-form-meta{color:var(--muted);justify-content:space-between;margin-top:.4rem;font-size:.68rem;display:flex}.assistant-form-meta b{color:var(--muted);font-weight:600}.assistant-foot{border-top:1px solid var(--border);background:var(--surface-soft);min-height:34px;color:var(--muted);flex:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem 1.1rem;font-size:.65rem;display:flex}@keyframes assistant-search{50%{opacity:.35;transform:translate(8px)}}@media (width<=720px){.assistant-launch{min-width:174px;bottom:14px;right:14px}.assistant-panel,.portfolio-assistant.is-expanded .assistant-panel{border-inline:0;border-bottom:0;border-radius:14px 14px 0 0;width:100vw;min-width:0;height:min(92svh,760px);min-height:0;bottom:0;right:0}.portfolio-assistant.is-open .assistant-launch,.assistant-expand,.assistant-mode b{display:none}.assistant-message{width:94%}.assistant-foot span:last-child{display:none}}@media (prefers-reduced-motion:reduce){.assistant-message.is-pending p:after{animation:none}}.lab-page-intro{padding-block:48px 32px}.lab-page-intro h1{margin-block:0 1rem;font-size:clamp(2rem,4vw,2.7rem)}.lab-page-intro-copy>p:last-child{max-width:690px;color:var(--muted);margin:0;font-size:1.03rem;line-height:1.7}.lab-page-spec{border:1px solid var(--border);background:var(--surface)}.lab-page-spec div{border-bottom:1px solid var(--border);grid-template-columns:94px minmax(0,1fr);gap:1rem;padding:1rem 1.1rem;display:grid}.lab-page-spec div:last-child{border-bottom:0}.lab-page-spec span,.lab-page-spec strong{font:.8rem/1.45 Inter Variable,sans-serif}.lab-page-spec span{color:var(--muted);letter-spacing:.1em}.lab-page-spec strong{color:var(--text);font-weight:500}.route-lab{border:1px solid var(--border);background:var(--surface);border-radius:10px;position:relative;overflow:hidden}.route-lab button{font:inherit}.route-lab button:disabled{cursor:not-allowed;opacity:.42}.lab-console-head,.lab-map-head{z-index:1;justify-content:space-between;align-items:center;display:flex;position:relative}.lab-console-head{border-bottom:1px solid var(--border);background:var(--surface);min-height:92px;padding:1.15rem 1.4rem}.lab-console-head>div:first-child>span,.lab-system-status,.lab-map-head,.lab-brief strong,.controller-step>span,.controller-step>div>span,.score-definition>span,.result-verdict>span,.result-actions>span{letter-spacing:.025em;font:600 .8rem Inter Variable,sans-serif}.lab-console-head>div:first-child>span{color:var(--accent)}.lab-console-head h2{letter-spacing:-.045em;margin-top:.35rem;font-size:1.4rem}.lab-system-status{color:var(--success);align-items:center;gap:.6rem;display:flex}.lab-system-status i{background:var(--success);border-radius:50%;width:8px;height:8px}.lab-scenario-picker{z-index:1;border-bottom:1px solid var(--border);background:var(--surface);color:inherit;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:0;font-size:1rem;display:grid;position:relative}.lab-scenario-picker button{border:0;border-right:1px solid var(--border);min-width:0;min-height:112px;color:var(--muted);cursor:pointer;text-align:left;background:0 0;padding:1rem 1.2rem;transition:background .2s,color .2s;position:relative}.lab-scenario-picker button:last-child{border-right:0}.lab-scenario-picker button:after{content:"";background:0 0;height:3px;position:absolute;inset:auto 0 0}.lab-scenario-picker button:hover,.lab-scenario-picker button:focus-visible{background:var(--surface-hover);color:var(--text)}.lab-scenario-picker button.is-active{background:var(--accent-soft);color:var(--text)}.lab-scenario-picker button.is-active:after{background:var(--accent)}.lab-scenario-picker span,.lab-scenario-picker small{font-family:Inter Variable,sans-serif;display:block}.lab-scenario-picker span{color:var(--accent);letter-spacing:.09em;font-size:.8rem}.lab-scenario-picker strong{margin:.38rem 0 .45rem;font-size:1rem;font-weight:600;display:block}.lab-scenario-picker small{color:var(--muted);font-size:.8rem;line-height:1.5}.lab-brief{z-index:1;border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:minmax(0,1.5fr) auto;align-items:center;gap:2rem;padding:1rem 1.4rem;display:grid;position:relative}.lab-brief p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.62}.lab-brief p strong{color:var(--warning);margin-right:.8rem}.lab-brief>div{gap:1.8rem;display:flex}.lab-brief>div span{color:var(--muted);letter-spacing:.08em;flex-direction:column;gap:.3rem;font:.8rem Inter Variable,sans-serif;display:flex}.lab-brief>div b{color:var(--text);letter-spacing:0;font-size:.8rem;font-weight:500}.lab-distance-rule{z-index:1;border-bottom:1px solid var(--border);background:var(--accent-soft);grid-template-columns:150px minmax(0,1fr);align-items:center;gap:1.25rem;padding:.9rem 1.4rem;display:grid;position:relative}.lab-distance-rule span{color:var(--accent);letter-spacing:.1em;font:600 .8rem Inter Variable,sans-serif}.lab-distance-rule p{color:var(--muted);margin:0;font-size:.86rem;line-height:1.55}.lab-workspace{z-index:1;grid-template-columns:minmax(0,1.55fr) minmax(350px,.72fr);align-items:start;display:grid;position:relative}.lab-map-shell{border-right:1px solid var(--border);min-width:0}.lab-map-head{border-bottom:1px solid var(--border);min-height:50px;color:var(--muted);background:var(--surface);padding:.8rem 1rem}.lab-map-head span:last-child{color:var(--accent)}.lab-map{isolation:isolate;aspect-ratio:3/2;background-color:var(--surface);background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);background-size:6.66667% 10%,6.66667% 10%;min-height:0;position:relative;overflow:hidden}.lab-route-canvas,.lab-stops-layer{width:100%;height:100%;position:absolute;inset:0}.lab-route-canvas{z-index:2;pointer-events:none}.lab-stops-layer{z-index:4;pointer-events:none}.lab-depot,.lab-stop{left:var(--x);top:var(--y);position:absolute;transform:translate(-50%,-50%)}.lab-depot{z-index:5;color:var(--text);letter-spacing:.06em;flex-direction:column;align-items:center;gap:.3rem;font:.8rem Inter Variable,sans-serif;display:flex}.lab-depot b{border:2px solid var(--text);background:var(--surface-soft);border-radius:6px;place-items:center;width:46px;height:46px;font-size:.88rem;display:grid}.lab-depot span{background:var(--surface);padding:.16rem .28rem}.lab-stop{pointer-events:auto;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:.28rem;padding:0;display:flex}.lab-stop b{border:2px solid var(--node-color);background:var(--surface);width:42px;height:42px;box-shadow:0 0 0 5px var(--node-color);border-radius:50%;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.lab-stop b{box-shadow:0 0 0 5px color-mix(in srgb, var(--node-color) 12%, transparent)}}.lab-stop b{color:var(--text);font:650 .82rem Inter Variable,sans-serif;transition:transform .18s,box-shadow .18s,background .18s}.lab-stop span{background:var(--surface);color:var(--muted);letter-spacing:.045em;white-space:nowrap;padding:.16rem .28rem;font:600 .8rem Inter Variable,sans-serif}.lab-stop:hover b,.lab-stop:focus-visible b{box-shadow:0 0 0 7px var(--node-color), 0 0 24px var(--node-color);transform:scale(1.12)}@supports (color:color-mix(in lab, red, red)){.lab-stop:hover b,.lab-stop:focus-visible b{box-shadow:0 0 0 7px color-mix(in srgb, var(--node-color) 16%, transparent), 0 0 24px color-mix(in srgb, var(--node-color) 30%, transparent)}}.lab-stop:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:4px}.lab-stop.is-assigned b{background:var(--node-color)}@supports (color:color-mix(in lab, red, red)){.lab-stop.is-assigned b{background:color-mix(in srgb, var(--node-color) 25%, var(--surface))}}.lab-map-axis{z-index:3;color:var(--muted);letter-spacing:.08em;pointer-events:none;font:.8rem Inter Variable,sans-serif;position:absolute}.axis-north{top:12px;left:12px}.axis-scale{bottom:10px;right:12px}.lab-map-legend{border-top:1px solid var(--border);background:var(--surface);min-height:50px;color:var(--muted);letter-spacing:.06em;flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem;padding:.8rem 1rem;font:.8rem Inter Variable,sans-serif;display:flex}.lab-map-legend span{align-items:center;gap:.5rem;display:inline-flex}.lab-map-legend i{background:var(--vehicle-color);width:18px;height:3px;box-shadow:0 0 10px var(--vehicle-color)}@supports (color:color-mix(in lab, red, red)){.lab-map-legend i{box-shadow:0 0 10px color-mix(in srgb, var(--vehicle-color) 42%, transparent)}}.lab-controller{background:var(--surface);min-width:0}.controller-step{border-bottom:1px solid var(--border);padding:1.15rem}.controller-step>span,.controller-step>div>span{color:var(--accent);margin-bottom:.85rem;display:block}.controller-step>div:first-child{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.controller-step small{color:var(--muted);font-size:.8rem}.vehicle-selector{grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:.5rem;display:grid}.vehicle-selector button{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--muted);cursor:pointer;letter-spacing:.04em;justify-content:center;align-items:center;gap:.5rem;padding:.8rem .5rem;font:600 .8rem Inter Variable,sans-serif;display:flex}.vehicle-selector button i{background:var(--vehicle-color);border-radius:50%;width:8px;height:8px}.vehicle-selector button.is-active{border-color:var(--vehicle-color);background:var(--vehicle-color)}@supports (color:color-mix(in lab, red, red)){.vehicle-selector button.is-active{background:color-mix(in srgb, var(--vehicle-color) 10%, var(--surface))}}.vehicle-selector button.is-active{color:var(--text)}.route-builder{min-height:310px}.route-lane{border:1px solid var(--border);border-top:2px solid var(--vehicle-color);background:var(--surface);margin-top:.7rem}.route-lane.has-overflow{border-color:var(--danger);box-shadow:inset 0 0 0 1px #f36b6b38}.route-lane header{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr 1fr;align-items:center;gap:.7rem;padding:.6rem .7rem;font:.8rem Inter Variable,sans-serif;display:grid}.route-lane header>b{color:var(--vehicle-color)}.route-lane header span{color:var(--muted);text-align:right}.route-lane header strong{color:var(--text);font-weight:500}.route-sequence{align-items:center;gap:.4rem;min-height:47px;padding:.8rem;display:flex;overflow-x:auto}.route-sequence em{color:var(--muted);letter-spacing:.06em;font:.8rem Inter Variable,sans-serif}.route-sequence span{color:var(--muted);flex:none}.route-sequence button{border:1px solid var(--vehicle-color);background:var(--vehicle-color);border-radius:50%;flex:none;width:30px;height:30px}@supports (color:color-mix(in lab, red, red)){.route-sequence button{background:color-mix(in srgb, var(--vehicle-color) 15%, var(--surface))}}.route-sequence button{color:var(--text);cursor:pointer;font:650 .8rem Inter Variable,sans-serif}.assignment-status{color:var(--muted);margin:1rem 0 0;font-size:.8rem}.assignment-status b{color:var(--warning);font:600 .86rem Inter Variable,sans-serif}.lab-actions{padding:1.15rem}.lab-run{border:1px solid var(--accent);background:var(--accent);width:100%;min-height:52px;color:var(--on-accent);cursor:pointer;letter-spacing:.05em;justify-content:space-between;align-items:center;padding:.9rem 1rem;font:650 .8rem Inter Variable,sans-serif;display:flex}.lab-run b{font-size:1rem}.lab-actions>div{grid-template-columns:1fr 1fr;gap:.8rem;margin-top:.8rem;display:grid}.lab-actions>div button{border:1px solid var(--border);background:var(--surface);min-height:40px;color:var(--muted);cursor:pointer;letter-spacing:.07em;font:600 .8rem Inter Variable,sans-serif}.lab-results{z-index:1;border-top:1px solid var(--border);background:var(--surface);position:relative}.lab-results[hidden]{display:none}.result-verdict{border-bottom:1px solid var(--border);padding:1.5rem 1.4rem}.result-verdict>span{color:var(--success)}.result-verdict h3{margin-top:.8rem;font-size:clamp(1.8rem,3vw,2.25rem)}.result-verdict p{max-width:820px;color:var(--muted);margin:.8rem 0 0;font-size:.95rem;line-height:1.65}.result-table{overflow-x:auto}.result-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(170px,1.35fr) repeat(4,minmax(105px,1fr));min-width:690px;display:grid}.result-row>*{border-right:1px solid var(--border);color:var(--muted);padding:.9rem 1rem;font:.85rem Inter Variable,sans-serif}.result-row>:last-child{border-right:0}.result-row strong,.result-row b{color:var(--text);font-weight:600}.result-row b{color:var(--success)}.result-table-head>*{color:var(--muted);letter-spacing:.08em;font-size:.8rem}.result-row.is-human{background:#58a6ff0d}.result-row.is-exact{background:#65d28b0d}.score-definition{border-bottom:1px solid var(--border);color:var(--muted);grid-template-columns:120px minmax(0,1fr);gap:1rem;margin:0;padding:1rem 1.4rem;font-size:.82rem;line-height:1.6;display:grid}.score-definition>span{color:var(--accent)}.result-actions{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.8rem;padding:1rem 1.4rem;display:flex}.result-actions>span{color:var(--muted);margin-right:.5rem}.result-actions button{border:1px solid var(--border);background:var(--surface);min-height:38px;color:var(--muted);cursor:pointer;padding:.6rem .8rem;font:600 .8rem Inter Variable,sans-serif}.result-actions button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.method-breakdown{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.method-breakdown article{border-right:1px solid var(--border);padding:1.35rem 1.4rem 1.5rem}.method-breakdown article:last-child{border-right:0}.method-breakdown header{flex-direction:column;gap:.42rem;display:flex}.method-breakdown header span{color:var(--muted);letter-spacing:.08em;font:.8rem Inter Variable,sans-serif}.method-breakdown header strong{color:var(--accent);font:600 .8rem Inter Variable,sans-serif}.method-breakdown ol{color:var(--muted);margin:1rem 0 0;padding-left:1.35rem;font-size:.87rem;line-height:1.66}.method-breakdown li{margin-top:.8rem;padding-left:.25rem}.method-breakdown li:first-child{margin-top:0}.method-breakdown b{color:var(--text)}.math-model{border-top:1px solid var(--border);background:var(--surface)}.math-model-head{border-bottom:1px solid var(--border);background:var(--surface-soft);grid-template-columns:minmax(0,1.35fr) minmax(390px,.65fr);align-items:end;gap:2rem;padding:1.5rem 1.4rem;display:grid}.math-model-head>div:first-child>span,.math-model-grid article>span,.math-model footer>span{color:var(--accent);letter-spacing:.1em;font:600 .8rem Inter Variable,sans-serif}.math-model-head h3{margin-top:.8rem;font-size:clamp(1.35rem,2.5vw,1.9rem)}.math-model-head p{max-width:730px;color:var(--muted);margin:.8rem 0 0;font-size:.88rem;line-height:1.65}.math-model-stats{border:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.math-model-stats div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.8rem}.math-model-stats div:nth-child(2n){border-right:0}.math-model-stats div:nth-last-child(-n+2){border-bottom:0}.math-model-stats span,.math-model-stats strong{font-family:Inter Variable,sans-serif;display:block}.math-model-stats span{color:var(--muted);letter-spacing:.07em;font-size:.8rem}.math-model-stats strong{color:var(--text);margin-top:.3rem;font-size:.86rem;font-weight:600}.math-model-grid{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.math-model-grid article{border-right:1px solid var(--border);min-width:0;padding:1.35rem 1.4rem 1.5rem}.math-model-grid article:last-child{border-right:0}.math-model-grid article>p{min-height:6.4em;color:var(--muted);margin:.8rem 0 1rem;font-size:.84rem;line-height:1.62}.math-model-grid article p code{color:var(--text);font:600 .8rem Inter Variable,sans-serif}.equation-stack{border:1px solid var(--border);background:var(--surface-soft);overflow-x:auto}.equation-stack code{border-bottom:1px solid var(--border);min-width:max-content;color:var(--text);padding:.8rem;font:.8rem/1.5 JetBrains Mono Variable,monospace;display:block}.equation-stack code:last-child{color:var(--success);border-bottom:0}.math-model footer{border-top:1px solid var(--border);color:var(--muted);padding:1rem 1.4rem;font-size:.82rem;line-height:1.6}.math-model footer>span{color:var(--success);margin-right:.7rem}.lab-explainer{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));margin-block:48px 64px;display:grid}.lab-explainer article{border-right:1px solid var(--border);padding:1.8rem 1.5rem 2rem}.lab-explainer article:first-child{padding-left:0}.lab-explainer article:last-child{border-right:0;padding-right:0}.lab-explainer article>span{color:var(--accent);letter-spacing:.1em;font:.8rem Inter Variable,sans-serif}.lab-explainer h2{letter-spacing:-.03em;margin-top:.7rem;font-size:1.45rem}.lab-explainer p{color:var(--muted);margin:.8rem 0 0;font-size:.92rem;line-height:1.65}.lab-explainer a{color:var(--accent);border-bottom:1px solid var(--border)}.lab-teaser{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr);align-items:center;gap:72px;padding-block:104px;display:grid}.lab-teaser-copy h2{font-size:clamp(2.6rem,5vw,4.5rem)}.lab-teaser-copy h2 em{color:var(--accent);font-style:normal}.lab-teaser-copy>p:not(.kicker){max-width:530px;color:var(--muted);margin:1.25rem 0 1.7rem;font-size:1.02rem;line-height:1.65}.lab-teaser-console{border:1px solid var(--border);background-color:var(--surface);background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);min-height:330px;box-shadow:14px 14px 0 var(--surface-soft);background-size:42px 42px;position:relative;overflow:hidden}.teaser-route{position:absolute;inset:0}.teaser-route:before,.teaser-route:after{content:"";transform-origin:0;background:var(--accent);height:2px;position:absolute;box-shadow:0 0 13px #58a6ff59}.teaser-route:before{width:63%;top:69%;left:13%;transform:rotate(-25deg)}.teaser-route:after{background:var(--warning);width:31%;top:42%;left:55%;transform:rotate(37deg)}.teaser-route i{z-index:2;border:2px solid var(--accent);background:var(--accent-soft);border-radius:50%;width:15px;height:15px;position:absolute}.teaser-route i:first-child{top:65%;left:12%}.teaser-route i:nth-child(2){top:50%;left:34%}.teaser-route i:nth-child(3){top:38%;left:54%}.teaser-route i:nth-child(4){top:27%;left:73%}.teaser-route i:nth-child(5){border-color:var(--warning);top:63%;left:84%}.teaser-score{border-top:1px solid var(--border);background:var(--surface);grid-template-columns:repeat(3,1fr);display:grid;position:absolute;inset:auto 0 0}.teaser-score div{border-right:1px solid var(--border);min-width:0;padding:.8rem}.teaser-score div:last-child{border-right:0}.teaser-score span,.teaser-score strong{text-overflow:ellipsis;white-space:nowrap;font-family:Inter Variable,sans-serif;display:block;overflow:hidden}.teaser-score span{color:var(--muted);letter-spacing:.07em;font-size:.8rem}.teaser-score strong{color:var(--text);margin-top:.35rem;font-size:.8rem;font-weight:500}@keyframes lab-status{50%{opacity:.4;transform:scale(.78)}}@media (width<=960px){.lab-page-intro{grid-template-columns:1fr;gap:38px}.lab-page-spec{max-width:560px}.lab-workspace{grid-template-columns:1fr}.lab-map-shell{border-right:0;border-bottom:1px solid var(--border)}.lab-controller{grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);display:grid}.lab-controller>.controller-step:first-child{border-right:1px solid var(--border)}.lab-actions{grid-column:1/-1}.route-builder{min-height:0}.lab-teaser{grid-template-columns:1fr;gap:48px}.lab-teaser-copy{max-width:690px}.math-model-head{grid-template-columns:1fr}.math-model-stats{max-width:520px}.math-model-grid{grid-template-columns:1fr}.math-model-grid article{border-right:0;border-bottom:1px solid var(--border)}.math-model-grid article:last-child{border-bottom:0}.math-model-grid article>p{min-height:0}}@media (width<=720px){.lab-page-intro{padding-block:36px 28px}.lab-page-intro h1{font-size:2rem}.route-lab{width:100%}.lab-console-head{flex-direction:column;align-items:flex-start;gap:.8rem;min-height:108px;padding:1rem}.lab-scenario-picker{display:flex;overflow-x:auto}.lab-scenario-picker button{flex:0 0 235px;min-height:110px}.lab-brief{grid-template-columns:1fr;gap:.85rem;padding:1rem}.lab-brief>div{gap:1.25rem}.lab-distance-rule{grid-template-columns:1fr;gap:.45rem;padding:.9rem 1rem}.lab-map-shell{overflow-x:auto}.lab-map-head,.lab-map,.lab-map-legend{min-width:620px}.lab-map{aspect-ratio:3/2}.lab-controller{display:block}.lab-controller>.controller-step:first-child{border-right:0}.vehicle-selector{grid-template-columns:repeat(2,minmax(0,1fr))}.controller-step{padding:1rem}.method-breakdown{grid-template-columns:1fr}.method-breakdown article{border-right:0;border-bottom:1px solid var(--border)}.method-breakdown article:last-child{border-bottom:0}.math-model-head{padding:1.25rem 1rem}.math-model-grid article{padding:1.2rem 1rem}.math-model footer{padding:1rem}.lab-explainer{grid-template-columns:1fr;margin-block:56px 80px}.lab-explainer article,.lab-explainer article:first-child,.lab-explainer article:last-child{border-right:0;border-bottom:1px solid var(--border);padding:1.5rem 0}.lab-explainer article:last-child{border-bottom:0}.lab-teaser{padding-block:72px}.lab-teaser-console{min-height:300px;box-shadow:8px 8px 0 var(--surface-soft)}.teaser-score{grid-template-columns:1fr}.teaser-score div{border-right:0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.6rem .8rem;display:flex}.teaser-score div:last-child{border-bottom:0}.teaser-score strong{margin-top:0}}@media (prefers-reduced-motion:reduce){.lab-system-status i{animation:none}}:root{color-scheme:light;--bg:#fff;--surface:#fff;--surface-soft:#f4f6f8;--surface-hover:#f7f9fc;--border:#d9dde2;--border-strong:#aeb7c2;--text:#17191c;--muted:#626a75;--accent:#2563eb;--accent-soft:#eaf1ff;--success:#217546;--warning:#94600e;--danger:#c43131;--on-accent:#fff;--route-1:#2864c5;--route-2:#a85a0a;--route-3:#217b50;--route-4:#8552b8;color:var(--text);background:var(--bg);font-synthesis:none;font-family:Inter Variable,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{isolation:isolate;background:var(--bg);min-width:320px;color:var(--text);margin:0;font-size:1rem;line-height:1.6;position:relative}a{color:inherit;text-decoration:none}img{max-width:100%}html[data-theme=dark],.review-body{color-scheme:dark;--bg:#0b0d10;--surface:#12161b;--surface-soft:#10151a;--surface-hover:#171c23;--border:#252b34;--border-strong:#46505d;--text:#e9edf2;--muted:#929ba8;--accent:#58a6ff;--accent-soft:#122238;--success:#85d9a2;--warning:#e8b56b;--danger:#ff9696;--on-accent:#0b1828;--route-1:#70b1ff;--route-2:#f0b16d;--route-3:#75d79c;--route-4:#bea0ef}.systems-backdrop{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.decision-field{opacity:.72;width:100%;height:100%;position:absolute;inset:0}.field-vignette{background:radial-gradient(circle at 50% 26%, transparent 0 24%, #0b0d1047 58%, var(--bg) 100%), linear-gradient(180deg, #0b0d1024, #0b0d10a3 86%, var(--bg));position:absolute;inset:0}.field-legend{display:none}.site-header,main,.contact-section,.site-footer{z-index:1;position:relative}.wrap{width:min(1000px,100% - 64px);margin-inline:auto}.skip-link{z-index:100;background:var(--accent);color:#fff;padding:.75rem 1rem;position:fixed;top:0;left:1rem;transform:translateY(-120%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:2rem;min-height:84px;display:flex}.wordmark{letter-spacing:-.03em;font-size:1.2rem;font-weight:720}.site-identity{flex-shrink:0;align-items:center;gap:.7rem;display:flex}.theme-toggle{border:1px solid var(--border);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;place-items:center;padding:8px;display:grid}.theme-toggle:hover{background:var(--surface-soft);border-color:var(--border-strong)}.theme-toggle svg{width:18px;height:18px}.theme-sun,html[data-theme=dark] .theme-moon{display:none}html[data-theme=dark] .theme-sun{display:block}.site-header nav{color:var(--muted);align-items:center;gap:1.7rem;font-size:.94rem;display:flex}.site-header nav a{border-bottom:1px solid #0000;padding-block:.4rem;transition:color .18s,border-color .18s}.site-header nav a:hover,.site-header nav a:focus-visible,.site-header nav a[aria-current=page]{color:var(--text);border-color:var(--text)}.eyebrow,.kicker,.project-category{color:var(--muted);font:550 .8rem Inter Variable,sans-serif}.eyebrow,.kicker{margin:0 0 .8rem}h1,h2,h3{color:var(--text);letter-spacing:-.03em;text-wrap:balance;font-weight:650;line-height:1.25}h1{margin:0 0 1.25rem;font-size:clamp(2rem,4vw,2.7rem)}h2{margin:0;font-size:clamp(1.55rem,3vw,1.9rem)}h3{margin:0;font-size:1.35rem}.home-hero{grid-template-columns:minmax(0,1fr) 200px;align-items:center;gap:4rem;padding-block:64px;display:grid}.home-hero-copy h1{max-width:780px}.hero-copy{max-width:660px;color:var(--muted);margin:0;font-size:1.03rem;line-height:1.8}.hero-copy+.hero-copy{margin-top:1rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1.5rem;display:flex}.button{border:1px solid var(--text);justify-content:center;align-items:center;min-height:46px;padding:.7rem 1rem;font-size:.92rem;font-weight:630;transition:background .18s,color .18s,border-color .18s,transform .18s;display:inline-flex}.button:hover,.button:focus-visible{transform:translateY(-2px)}.button-primary{border-color:var(--text);background:var(--text);color:var(--bg)}.button-primary:hover,.button-primary:focus-visible{border-color:var(--accent);background:var(--accent);color:#fff}.button-secondary{border-color:var(--border-strong);color:var(--text);background:0 0}.button-secondary:hover,.button-secondary:focus-visible{border-color:var(--text);background:var(--surface)}.text-link{color:var(--text);border-bottom:1px solid var(--border-strong);padding-bottom:.12rem;font-size:.94rem;font-weight:600;display:inline-block}.text-link:hover,.text-link:focus-visible{color:var(--accent);border-color:var(--accent)}.home-portrait{margin:0}.home-portrait img{aspect-ratio:4/5;object-fit:cover;object-position:center 42%;border-radius:8px;width:100%;display:block}.home-portrait figcaption{color:var(--muted);text-align:center;margin-top:.65rem;font-size:.82rem}.projects-section,.background-section{border-top:1px solid var(--border);padding-block:48px}.section-heading{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.2rem;display:flex}.featured-grid,.repo-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.project-card,.repo-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;min-width:0;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex;overflow:hidden}.project-card:hover,.repo-card:hover{border-color:var(--accent)}.project-card:focus-visible,.repo-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.project-card-copy,.repo-content{flex-direction:column;flex:1;padding:1.35rem;display:flex}.project-category{margin:0 0 .55rem;font-size:.68rem}.project-card h3,.repo-card h2{margin:0;font-size:clamp(1.3rem,2vw,1.65rem)}.project-card-copy>p:not(.project-category),.repo-card p{color:var(--muted);margin:.8rem 0 1rem;font-size:.95rem;line-height:1.6}.tech-list{flex-wrap:wrap;gap:.4rem;margin:auto 0 0;padding:.25rem 0 0;list-style:none;display:flex}.tech-list li{background:var(--surface-soft);color:var(--muted);border-radius:4px;padding:.28rem .5rem;font-size:.73rem}.mobile-link{margin-top:1.5rem;display:none}.home-profile{border-top:1px solid var(--border);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(3rem,10vw,8rem);padding-block:96px;display:grid}.home-profile h2{max-width:480px}.home-profile-copy p{color:var(--muted);margin:0 0 1.25rem;font-size:1.06rem;line-height:1.75}.home-profile-copy .text-link,.timeline{margin-top:.5rem}.timeline-item{padding:1.5rem 0}.timeline-item+.timeline-item{border-top:1px solid var(--border)}.timeline-item:last-child{padding-bottom:0}.timeline-heading{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.timeline-date{color:var(--muted);flex-shrink:0;font-size:.82rem}.timeline-item h3{letter-spacing:-.015em;font-size:1.05rem}.timeline-item p{max-width:78ch;color:var(--muted);margin:.45rem 0 0;font-size:.95rem}.timeline-item .timeline-organization{color:var(--text);font-weight:500}.lab-note{border:1px solid var(--border);background:var(--surface-soft);border-radius:8px;justify-content:space-between;align-items:center;gap:2rem;margin-block:16px 56px;padding:1.5rem;display:flex}.lab-note h2{font-size:1.4rem}.lab-note p:not(.kicker){max-width:670px;color:var(--muted);margin:.7rem 0 0}.lab-note .button{flex-shrink:0}.contact-section{border-top:1px solid var(--border);background:var(--bg);padding-block:48px}.contact-shell{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(3rem,10vw,8rem);display:grid}.contact-heading h2{max-width:520px}.contact-heading>p:last-child{max-width:520px;color:var(--muted);margin-top:1.25rem}.contact-links{border-top:1px solid var(--border)}.contact-links a{border-bottom:1px solid var(--border);grid-template-columns:90px minmax(0,1fr);gap:1rem;padding:1rem 0;display:grid}.contact-links a:hover strong,.contact-links a:focus-visible strong{color:var(--accent)}.contact-links span{color:var(--muted);font-size:.82rem}.contact-links strong{text-overflow:ellipsis;font-size:.95rem;font-weight:570;transition:color .18s;overflow:hidden}.site-footer{min-height:92px;color:var(--muted);justify-content:space-between;align-items:center;gap:1.5rem;font-size:.82rem;display:flex}.site-footer p{margin:0}.site-footer div{gap:1.25rem;display:flex}.site-footer a:hover{color:var(--accent)}.page-intro{padding-block:48px 36px}.page-intro h1{max-width:780px}.page-intro-copy>p:last-child,.page-intro>p:last-child{max-width:680px;color:var(--muted);margin:0;font-size:1.08rem;line-height:1.7}.projects-intro{display:block}.index-console{display:none}.repo-section{padding-bottom:96px}.filter-bar{justify-content:space-between;align-items:end;gap:2rem;margin-bottom:1.5rem;display:flex}.filter-bar h2{letter-spacing:-.02em;font-size:1.35rem}.filter-bar h2 span{color:var(--muted);margin-left:.35rem;font-size:.78rem}.filters{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.filters button{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;padding:.48rem .75rem;font:500 .8rem Inter Variable,sans-serif}.filters button:hover,.filters button:focus-visible,.filters button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.repo-card[hidden]{display:none}.repo-card-head{color:var(--muted);justify-content:space-between;padding:1rem 1.35rem 0;font-size:.72rem;display:flex}.repo-arrow{color:var(--accent)}.repo-meta{color:var(--accent);text-transform:uppercase;flex-wrap:wrap;gap:.55rem;margin-bottom:.55rem;font-size:.72rem;display:flex}.repo-card p{min-height:4.7em}.repo-footer{color:var(--muted);flex-wrap:wrap;gap:1rem;margin-top:auto;padding-top:.6rem;font-size:.75rem;display:flex}.empty-state{color:var(--muted);text-align:center;padding-block:4rem}.not-found{flex-direction:column;justify-content:center;align-items:flex-start;min-height:calc(100vh - 170px);padding-block:80px;display:flex}.not-found>p:not(.error-code){color:var(--muted);margin:0 0 2rem;font-size:1.1rem}.error-code{color:var(--accent);letter-spacing:.12em;font:.75rem JetBrains Mono Variable,monospace}.will-reveal{opacity:0;transition:opacity .45s ease var(--reveal-delay), transform .45s ease var(--reveal-delay);transform:translateY(16px)}.will-reveal.is-visible{opacity:1;transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.assistant-nudge{display:none!important}.assistant-launch{border-radius:8px;grid-template-columns:minmax(0,1fr) 14px;gap:.75rem;width:auto;min-width:190px;min-height:48px;padding:.65rem .8rem;bottom:22px;right:24px;box-shadow:0 4px 16px #0000001a}.assistant-launch .launch-signal{display:none}.assistant-launch strong{letter-spacing:0;text-transform:none;font-family:Inter Variable,sans-serif;font-size:.8rem}.assistant-launch small{letter-spacing:0;text-transform:none;margin-top:.08rem;font-family:Inter Variable,sans-serif;font-size:.66rem}.assistant-launch:after{display:none}.portfolio-assistant.has-unread .assistant-launch{animation:none}@media (width<=780px){.wrap{width:min(100% - 32px,1000px)}.site-header{min-height:72px}.site-header nav{gap:1rem;font-size:.86rem}.nav-contact{display:none}.home-hero{grid-template-columns:1fr;gap:1.75rem;padding-block:36px 44px}.home-portrait{order:-1;width:140px}.home-portrait img{border-radius:8px}h1{font-size:2rem}.projects-section,.background-section{padding-block:36px}.featured-grid,.repo-list{grid-template-columns:1fr}.desktop-link{display:none}.mobile-link{display:inline-block}.home-profile,.contact-shell{grid-template-columns:1fr;gap:2rem}.timeline-heading{flex-direction:column;align-items:flex-start;gap:.35rem}.lab-note{flex-direction:column;align-items:flex-start;margin-bottom:40px}.filter-bar{flex-direction:column;align-items:flex-start}.filters{justify-content:flex-start}.site-footer{flex-direction:column;justify-content:center;align-items:flex-start}.assistant-launch{min-width:174px;bottom:14px;right:14px}}@media (width<=520px){.wordmark{font-size:1rem}.site-header{flex-wrap:wrap;gap:.5rem;padding-block:12px}.site-header nav{justify-content:space-between;gap:.8rem;width:100%;font-size:.8rem}.nav-contact{display:block}.hero-actions .button{width:100%}.hero-actions .text-link{align-self:flex-start}.contact-links a{grid-template-columns:70px minmax(0,1fr)}.site-footer div{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.will-reveal{opacity:1;transform:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
