/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--spacing:.25rem;--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,ui-sans-serif, system-ui, 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]){-webkit-text-decoration:underline dotted;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;-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{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}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.table{display:table}.resize{resize:both}}:root{--bg:#061018;--panel:#0b1924;--panel-2:#0e2130;--ink:#eef7fb;--muted:#8da6b5;--line:#83ceeb29;--cyan:#43d9ff;--blue:#6c8cff;--violet:#a987ff;--green:#66e3ad;--orange:#ff9b63;--shell:min(1180px,calc(100% - 42px));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f4f7f5;--panel:#fff;--panel-2:#eaf1f2;--ink:#10242e;--muted:#4f6771;--line:#0f39462e;--cyan:#087f9c;--blue:#355dcc;--violet:#6947bd;--green:#11754f;--orange:#a94f24;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-manrope),Arial,sans-serif;margin:0;transition:background .35s,color .35s}h1,h2,h3,.mark,.button{font-family:var(--font-geist-sans),Arial,sans-serif}body:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(circle at 15% 10%,#43d9ff1a,#0000 28%),radial-gradient(circle at 88% 25%,#a987ff17,#0000 25%),linear-gradient(#5393b10e 1px,#0000 1px) 0 0/48px 48px,linear-gradient(90deg,#5393b10e 1px,#0000 1px) 0 0/48px 48px;position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#0000 0 8%,#43d9ff06 8% 8.1%,#0000 8.1% 91.9%,#43d9ff06 91.9% 92%,#0000 92%);position:fixed;inset:0}a{color:inherit;text-decoration:none}button{font:inherit}.shell{width:var(--shell);margin-inline:auto}.nav{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;height:76px;display:flex;position:relative}.mark{align-items:center;gap:12px;display:flex}.mark span{width:36px;height:36px;color:var(--cyan);font:700 10px var(--font-geist-mono);background:linear-gradient(145deg,#43d9ff2e,#6c8cff1f);border:1px solid #43d9ff73;border-radius:8px;place-items:center;display:grid;box-shadow:inset 0 0 18px #43d9ff17}.mark b{letter-spacing:-.01em;font-size:13px}.mark b:after{content:" // portfolio";color:#5b7585;font:10px var(--font-geist-mono);font-weight:400}.navLinks{color:var(--muted);gap:30px;font-size:12px;display:flex}.navLinks a:hover{color:var(--cyan)}.navControls{align-items:center;gap:13px;display:flex}.themeToggle{border:1px solid var(--line);background:var(--panel);height:34px;color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:0 10px;transition:all .25s;display:flex}.themeToggle:hover{border-color:var(--cyan);color:var(--cyan)}.themeToggle span{font-size:15px;line-height:1}.themeToggle b{font:600 9px var(--font-geist-mono);text-transform:uppercase;letter-spacing:.08em}.lang{color:#546c7b;font:10px var(--font-geist-mono);gap:5px;display:flex}.lang button{color:inherit;cursor:pointer;background:0 0;border:0;padding:7px}.lang button.active{color:var(--cyan)}.hero{grid-template-columns:1.12fr .88fr;align-items:center;gap:88px;min-height:720px;padding:86px 0 112px;display:grid;position:relative}.hero:before{content:"INGEST  →  TRANSFORM  →  MODEL  →  SERVE";color:#456170;font:9px var(--font-geist-mono);letter-spacing:.14em;position:absolute;bottom:35px;left:0}.hero:after{content:"";background:linear-gradient(90deg,var(--cyan) 0 12%,var(--line) 12% 100%);height:1px;position:absolute;bottom:20px;left:0;right:0}.eyebrow,.kicker{font:600 10px var(--font-geist-mono);letter-spacing:.18em;color:var(--cyan)}.signal{background:var(--green);width:7px;height:7px;box-shadow:0 0 16px var(--green);border-radius:50%;margin-right:11px;display:inline-block}h1,h2,h3,p{margin-top:0}.hero h1{letter-spacing:-.046em;text-wrap:balance;max-width:720px;margin:27px 0;font-size:clamp(52px,6vw,82px);font-weight:420;line-height:1.025}.hero h1 em{background:linear-gradient(100deg,var(--cyan),#77a9ed 48%,var(--violet));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:.92em;font-style:normal;font-weight:470;display:inline-block}.lede{color:#abc0cb;max-width:625px;font-size:18.5px;line-height:1.68}.heroActions,.footerActions{gap:12px;margin-top:30px;display:flex}.heroNote{border-top:1px solid var(--line);grid-template-columns:112px 1fr;align-items:start;gap:15px;max-width:625px;margin-top:33px;padding-top:18px;display:grid}.heroNote span{font:600 9px var(--font-geist-mono);letter-spacing:.14em;color:var(--cyan)}.heroNote p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.button{background:#0d222f8c;border:1px solid #6bbddb40;border-radius:10px;justify-content:center;align-items:center;gap:24px;min-height:48px;padding:0 19px;font-size:12px;transition:all .25s;display:inline-flex;box-shadow:inset 0 1px #ffffff09}.button:hover{background:#173949a6;border-color:#43d9ff99;transform:translateY(-2px)}.button.primary{background:var(--cyan);border-color:var(--cyan);color:#031017;font-weight:700;box-shadow:0 0 28px #43d9ff2b}.portraitWrap{aspect-ratio:4/5;background:#0a1b26;border-radius:20px;justify-self:end;max-width:390px;position:relative;overflow:hidden;box-shadow:0 35px 90px #0006,0 0 0 1px #43d9ff40}.portraitWrap:before{content:"IDENTITY / 001";z-index:3;color:#70ddf8;font:8px var(--font-geist-mono);letter-spacing:.12em;background:#030e15b8;border:1px solid #43d9ff40;padding:7px 9px;position:absolute;top:16px;left:16px}.portraitWrap img{object-fit:cover;filter:saturate(.82)contrast(1.07)brightness(1.05);width:100%;height:100%}.portraitWrap:after{content:"";background:linear-gradient(#0000 54%,#030c12c7),linear-gradient(135deg,#43d9ff17,#0000 42%);position:absolute;inset:0}.portraitGrid{z-index:2;pointer-events:none;background-color:#0000;background-image:linear-gradient(#43d9ff14 1px,#0000 1px),linear-gradient(90deg,#43d9ff14 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:33.333% 33.333%;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0}.portraitTag{z-index:4;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#eef7fb;background:#030f16b8;border:1px solid #43d9ff3d;border-radius:11px;padding:15px 16px;position:absolute;bottom:20px;left:20px;right:20px}.portraitTag span{font-size:13px;display:block}.portraitTag strong{color:#7fa4b6;font:9px var(--font-geist-mono);letter-spacing:.1em;text-transform:uppercase;margin-top:5px;display:block}.section{padding-block:118px;position:relative}.sectionHead{grid-template-columns:1fr minmax(280px,440px);align-items:end;gap:60px;margin-bottom:55px;display:grid}.sectionHead h2,.about h2,.journey h2,.footer h2{letter-spacing:-.054em;margin:13px 0 0;font-size:clamp(44px,5.7vw,76px);font-weight:580;line-height:.97}.sectionHead p{color:var(--muted);margin:0;font-size:16px;line-height:1.65}.projectGrid{gap:48px;display:grid}.project{border:1px solid var(--line);background:linear-gradient(145deg,#0d202cf5,#07141dfa);border-radius:22px;position:relative;overflow:hidden;box-shadow:0 30px 90px #00000042}.project:before{content:"";z-index:3;background:linear-gradient(var(--cyan),transparent 45%);width:2px;position:absolute;top:0;bottom:0;left:0}.project.blue:before{background:linear-gradient(var(--blue),transparent 45%)}.project.amber:before{background:linear-gradient(var(--orange),transparent 45%)}.project.violet:before{background:linear-gradient(var(--violet),transparent 45%)}.project.rose:before{background:linear-gradient(#ff6f91,#0000 45%)}.project.cyan:before{background:linear-gradient(var(--green),transparent 45%)}.projectImage{aspect-ratio:16/8.7;border-bottom:1px solid var(--line);background:#040b10;position:relative;overflow:hidden}.projectImage:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 0 80px #050e1440}.projectImage img{object-fit:contain;filter:brightness(1.13)saturate(1.08);width:100%;height:100%;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s;position:absolute;inset:0}.project:hover .projectImage img{filter:brightness(1.19)saturate(1.12);transform:scale(1.012)}.projectNumber,.open{z-index:4;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font:10px var(--font-geist-mono);background:#030d13c2;border:1px solid #62bede3d;border-radius:8px;padding:9px 11px;position:absolute;top:20px}.projectNumber{color:var(--cyan);left:20px}.open{color:var(--cyan);right:20px}.galleryMeta{z-index:4;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);font:9px var(--font-geist-mono);text-transform:uppercase;background:#030d13c2;border:1px solid #62bede3d;border-radius:8px;gap:10px;padding:9px 11px;display:flex;position:absolute;bottom:20px;left:20px}.galleryControls{z-index:4;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#030d13cc;border:1px solid #62bede3d;border-radius:9px;align-items:center;gap:7px;padding:6px;display:flex;position:absolute;bottom:20px;right:20px}.galleryControls>button{width:34px;height:32px;color:var(--ink);cursor:pointer;background:#43d9ff0d;border:0;border-radius:6px}.galleryDots{gap:5px;display:flex}.galleryDots button{cursor:pointer;background:#315062;border:0;border-radius:3px;width:16px;height:3px;padding:0}.imageCaption{display:none}.entryMeta{font:9px var(--font-geist-mono);letter-spacing:.09em;text-transform:uppercase;color:#5e7c8d;flex-wrap:wrap;gap:9px;margin-bottom:25px;display:flex}.entryMeta span:first-child{color:var(--cyan)}.projectTitle{justify-content:space-between;align-items:start;gap:20px;display:flex}.projectTitle>div>span{font:10px var(--font-geist-mono);letter-spacing:.13em;color:var(--green);text-transform:uppercase}.projectTitle h3{letter-spacing:-.045em;margin:10px 0 30px;font-size:clamp(37px,5vw,64px);font-weight:570;line-height:1}.projectTitle small{font:9px var(--font-geist-mono);color:var(--cyan);white-space:nowrap;border:1px solid #43d9ff47;border-radius:8px;padding:8px 11px}.projectSummary{border-top:1px solid var(--line);grid-template-columns:130px 1fr;gap:22px;padding-top:25px;display:grid}.projectSummary>b,.caseBlock>b,.decision b,.insights>b{font:600 10px var(--font-geist-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}.projectSummary p{color:#c3d4dc;margin:0;font-size:18px;line-height:1.65}.caseStudyGrid{grid-template-columns:1fr 1fr;gap:15px;margin:28px 0 30px;display:grid}.caseBlock,.decision{border:1px solid var(--line);background:#112b3a61;border-radius:14px;min-height:210px;padding:24px}.caseBlock>b,.decision b{margin-bottom:14px;display:block}.caseBlock>b{color:var(--green)}.decision b{color:var(--violet)}.caseBlock p,.decision span{color:#9fb5c0;margin:0;font-size:14px;line-height:1.7}.insights{border-top:1px solid var(--line);padding-top:27px}.insights>b{color:var(--orange);margin-bottom:16px;display:block}.insights ul{counter-reset:insight;grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}.insights li{counter-increment:insight;border:1px solid var(--line);color:#9fb5c0;background:#0d24317a;border-radius:12px;padding:17px;font-size:13px;line-height:1.55}.insights li:before{content:"0" counter(insight);color:var(--orange);font:9px var(--font-geist-mono);margin-bottom:14px;display:block}.tags{flex-wrap:wrap;gap:7px;margin-top:25px;display:flex}.tags span{color:#81a2b2;font:9px var(--font-geist-mono);background:#254e612e;border:1px solid #6aaec729;border-radius:6px;padding:7px 9px}.about{border:1px solid var(--line);background:radial-gradient(circle at 18% 18%,#43d9ff17,#0000 32%),linear-gradient(135deg,#0a1c28,#0c1724 58%,#14152a);border-radius:28px;width:min(1320px,100% - 24px);margin:28px auto 0;overflow:hidden;box-shadow:0 30px 100px #00000029}.aboutGrid{grid-template-columns:.78fr 1.22fr;gap:95px;display:grid}.aboutCopy{gap:17px;display:grid}.about p{color:#d4e2e8;margin:0;font-size:clamp(17px,1.8vw,21px);line-height:1.72}.about p:first-child{color:#eef6f8;font-size:clamp(19px,2.05vw,24px)}.principles{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:36px;display:grid}.principles div{border:1px solid var(--line);background:#0e2b396b;border-radius:12px;padding:18px}.principles b{color:var(--cyan);font:9px var(--font-geist-mono);margin-bottom:13px;display:block}.principles span{color:#aec2cc;font-size:13px}.journey{border:1px solid var(--line);background:linear-gradient(145deg,#0d1f2b9e,#08161f75);border-radius:24px;grid-template-columns:.7fr 1.3fr;align-items:center;gap:80px;margin-top:28px;padding-inline:48px;display:grid;box-shadow:0 22px 70px #0000001f}.journeyCopy p{color:var(--muted);font-size:17px;line-height:1.7}.timeline{grid-template-columns:1fr 16px 1fr 16px 1fr 16px 1fr;align-items:center;display:grid}.timeline div{border:1px solid var(--line);background:var(--panel);border-radius:12px;flex-direction:column;justify-content:space-between;min-height:145px;padding:19px;display:flex}.timeline div b{font-size:14px}.timeline div span{font:9px var(--font-geist-mono);color:#688494}.timeline i{background:linear-gradient(90deg,var(--cyan),var(--violet));height:1px}.skills{padding-top:28px}.skills>.shell{border:1px solid var(--line);background:#0b192480;border-radius:24px;padding:58px 48px}.sectionHead.compact{margin-bottom:31px;display:block}.skillCloud{flex-wrap:wrap;gap:10px;display:flex}.skillCloud span{border:1px solid var(--line);background:var(--panel);font:11px var(--font-geist-mono);color:#a5bec9;border-radius:8px;padding:12px 15px;box-shadow:inset 0 1px #ffffff06}.footer{border-top:1px solid var(--line);background:#030a0f;padding:115px 0 30px}.footer h2{max-width:850px;margin:17px 0 25px}.footer>div>p{color:#879eaa;max-width:650px;font-size:18px;line-height:1.7}.footerBase{border-top:1px solid var(--line);color:#4e6876;font:9px var(--font-geist-mono);justify-content:space-between;margin-top:90px;padding-top:22px;display:flex}.learningBlock{border-top:1px solid var(--line);margin:29px 0 30px;padding-top:27px}.learningBlock>b,.challengeSection>b{color:var(--green);font:600 10px var(--font-geist-mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:16px;display:block}.learningBlock ul{counter-reset:outcome;grid-template-columns:repeat(3,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}.learningBlock li{counter-increment:outcome;border:1px solid var(--line);color:#a9bec8;background:#0d24317a;border-radius:12px;padding:17px;font-size:13px;line-height:1.55}.learningBlock li:before{content:"0" counter(outcome);color:var(--green);font:9px var(--font-geist-mono);margin-bottom:14px;display:block}.challengeSection{border-top:1px solid var(--line);margin:0 0 30px;padding-top:27px}.challengeSection>b{color:var(--violet)}.challengeGrid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.challenge,.solution{border:1px solid var(--line);background:#112b3a61;border-radius:14px;min-height:205px;padding:24px}.challenge>b,.solution>b{font:600 10px var(--font-geist-mono);letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px;display:block}.challenge>b{color:var(--orange)}.solution>b{color:var(--cyan)}.challenge p,.solution p{color:#9fb5c0;margin:0;font-size:14px;line-height:1.7}.architectureBlock{min-height:0;margin-bottom:30px}.architectureBlock>b{color:var(--blue)}:root[data-theme=light] .mark b:after,:root[data-theme=light] .lang{color:#5c717a}:root[data-theme=light] .navLinks{color:#405a64}:root[data-theme=light] .themeToggle{color:#29444f;background:#fff;border-color:#0f394638}:root[data-theme=light] .lede{color:#354f59}:root[data-theme=light] .hero:before{color:#657c85}:root[data-theme=light] .heroNote p{color:#3f5963}:root[data-theme=light] .button{color:#17323d;background:#fff;border-color:#0f39463d;box-shadow:0 8px 24px #24414912}:root[data-theme=light] .button:hover{border-color:var(--cyan);background:#f8fcfc}:root[data-theme=light] .button.primary{background:var(--cyan);color:#fff;border-color:#06748e;box-shadow:0 10px 30px #087f9c33}:root[data-theme=light] .project{background:#fff;border-color:#0f39462e;box-shadow:0 24px 68px #27444d1a}:root[data-theme=light] .projectSummary p{color:#233f49}:root[data-theme=light] .entryMeta{color:#526a74}:root[data-theme=light] .caseBlock,:root[data-theme=light] .decision,:root[data-theme=light] .challenge,:root[data-theme=light] .solution,:root[data-theme=light] .learningBlock li,:root[data-theme=light] .insights li{background:#f7faf9;border-color:#0f394626}:root[data-theme=light] .caseBlock p,:root[data-theme=light] .decision span,:root[data-theme=light] .challenge p,:root[data-theme=light] .solution p,:root[data-theme=light] .learningBlock li,:root[data-theme=light] .insights li{color:#354f59}:root[data-theme=light] .tags span{color:#355862;background:#eef6f6;border-color:#087f9c26}:root[data-theme=light] .about{background:radial-gradient(circle at 18% 18%,#087f9c1a,#0000 32%),linear-gradient(135deg,#edf6f4,#f8faf7 58%,#f1eff8);box-shadow:0 24px 70px #27444d1a}:root[data-theme=light] .about p{color:#1f3944}:root[data-theme=light] .principles div{background:#ffffffd1;border-color:#0f39462b}:root[data-theme=light] .principles span{color:#334f59}:root[data-theme=light] .journey{background:#fff;box-shadow:0 20px 58px #27444d14}:root[data-theme=light] .journeyCopy p{color:#405963}:root[data-theme=light] .timeline div,:root[data-theme=light] .skillCloud span{color:#294750;background:#fff;border-color:#0f39462b}:root[data-theme=light] .timeline div span{color:#536f79}:root[data-theme=light] .skills>.shell{background:#eef4f4;box-shadow:0 18px 52px #27444d12}:root[data-theme=light] .sectionHead p{color:#415b65}:root[data-theme=light] .footer>div>p{color:#405963}:root[data-theme=light] .footerBase{color:#536b74}@media (width<=900px){.navLinks{display:none}.hero{grid-template-columns:1fr;gap:55px}.portraitWrap{justify-self:start;max-width:350px}.sectionHead,.aboutGrid,.journey{grid-template-columns:1fr;gap:42px}.journey{padding-inline:36px}.insights ul,.learningBlock ul{grid-template-columns:1fr}.timeline{grid-template-columns:1fr;gap:8px}.timeline i{justify-self:center;width:1px;height:18px}.timeline div{min-height:110px}.caseStudyGrid,.challengeGrid{grid-template-columns:1fr}}@media (width<=640px){:root{--shell:calc(100% - 28px)}.nav{height:66px}.mark b,.themeToggle b{display:none}.themeToggle{justify-content:center;width:34px;padding:0}.navControls{gap:7px}.hero{min-height:auto;padding:58px 0 90px}.hero h1{letter-spacing:-.042em;font-size:46px;font-weight:410;line-height:1.04}.hero h1 em{font-weight:460}.lede{font-size:16.5px;line-height:1.65}.heroActions,.footerActions{flex-direction:column}.heroNote{grid-template-columns:1fr;gap:8px}.portraitWrap{border-radius:16px;width:86%}.section{padding-block:74px}.about{border-radius:20px;width:calc(100% - 16px)}.journey{border-radius:18px;padding-inline:20px}.skills>.shell{border-radius:18px;padding:42px 20px}.sectionHead h2,.about h2,.journey h2{font-size:42px}.project{border-radius:16px}.projectImage{aspect-ratio:16/10.5}.projectBody{padding:28px 22px 30px}.galleryMeta,.galleryDots{display:none}.projectTitle{display:block}.projectTitle small{margin-bottom:18px;display:inline-block}.projectTitle h3{font-size:40px}.projectSummary{grid-template-columns:1fr;gap:10px}.projectSummary p{font-size:16px}.caseBlock,.decision{min-height:0}.principles{grid-template-columns:1fr}.footerBase{flex-direction:column;gap:10px}.footer h2{font-size:48px}}.section{padding-block:112px}.sectionHead{margin-bottom:48px}.projectGrid{gap:56px}.caseBlock,.decision,.challenge,.solution{min-height:0}.learningBlock,.challengeSection,.architectureBlock,.plannedMarts,.insights{border-top:1px solid var(--line);margin-top:30px;margin-bottom:0;padding-top:27px}.architectureBlock{padding-top:24px}.plannedMarts{margin-bottom:30px}.plannedHead{justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;display:flex}.plannedHead>b{color:var(--violet);font:600 10px var(--font-geist-mono);letter-spacing:.14em;text-transform:uppercase}.plannedHead>span{color:var(--muted);font:9px var(--font-geist-mono);letter-spacing:.06em}.plannedMarts ul{grid-template-columns:repeat(4,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.plannedMarts li{border:1px solid var(--line);background:#0d24317a;border-radius:11px;flex-direction:column;gap:11px;min-width:0;padding:15px;display:flex}.plannedMarts code{overflow-wrap:anywhere;color:#c3d4dc;font:11px var(--font-geist-mono)}.plannedMarts small{color:var(--violet);font:7px var(--font-geist-mono);letter-spacing:.12em;background:#a987ff1c;border-radius:4px;align-self:flex-start;padding:4px 6px}:root[data-theme=light] .plannedMarts li{background:#f7faf9;border-color:#0f394626}:root[data-theme=light] .plannedMarts code{color:#25434d}@media (width<=900px){.plannedMarts ul{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.section{padding-block:72px}.projectGrid{gap:42px}.projectBody{padding:30px 22px 32px}.entryMeta{margin-bottom:22px}.projectTitle h3{margin-bottom:24px}.galleryMeta{display:flex;bottom:12px;left:12px}.galleryMeta span{display:none}.galleryControls{bottom:12px;right:12px}.galleryDots{display:none}.plannedHead{flex-direction:column;align-items:flex-start;gap:8px}.plannedMarts ul{grid-template-columns:1fr}.learningBlock,.challengeSection,.architectureBlock,.plannedMarts,.insights{margin-top:25px;padding-top:23px}}.skills{padding-top:28px;padding-bottom:12px}.work{padding-top:30px}.projectImage{background:#0b1720}@media (width<=640px){.skills{padding-top:20px;padding-bottom:10px}.work{padding-top:28px}}.lede,.aboutCopy p,.journeyCopy p,.sectionHead>p,.projectBrief p{font-family:var(--font-dm-sans),Arial,sans-serif}.lede{text-align:center;text-wrap:balance;max-width:630px;margin-inline:auto;font-size:17px;line-height:1.65}.about p{font-size:clamp(15px,1.25vw,17.5px);line-height:1.68}.about p:first-child{font-size:clamp(16px,1.4vw,18px);line-height:1.65}.journeyCopy p{font-size:15px;line-height:1.65}.sectionHead>p{max-width:390px;font-size:14px;line-height:1.6}@media (width<=640px){.lede{font-size:16px}.about p,.about p:first-child{font-size:15.5px}.journeyCopy p,.sectionHead>p{font-size:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.projectImage img{transition:none}}.welcomeLine{color:#94dff2;font:600 9px var(--font-geist-mono);letter-spacing:.16em;background:#43d9ff0e;border:1px solid #43d9ff3d;border-radius:7px;align-items:center;margin-bottom:17px;padding:8px 11px;display:inline-flex}.projectIndex{border:1px solid var(--line);background:#0b19248f;border-radius:14px;grid-template-columns:130px 1fr;align-items:start;gap:18px;margin:-12px 0 34px;padding:18px 20px;display:grid}.projectIndex>span{color:var(--cyan);font:600 9px var(--font-geist-mono);letter-spacing:.14em;text-transform:uppercase;padding-top:10px}.projectIndex>div{flex-wrap:wrap;gap:8px;display:flex}.projectIndex a{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:7px;align-items:center;gap:8px;padding:9px 11px;font-size:10px;transition:all .2s;display:inline-flex}.projectIndex a:hover{border-color:var(--cyan);color:var(--ink);transform:translateY(-1px)}.projectIndex b{color:var(--cyan);font:9px var(--font-geist-mono)}.projectGrid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:28px}.projectGrid>.project:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 14px)}.project{border-radius:18px;scroll-margin-top:24px;box-shadow:0 20px 58px #0003}.projectImage{aspect-ratio:16/9;background:#101d26}.projectImage img{filter:brightness(1.2)saturate(1.06)contrast(.99)}.project:hover .projectImage img{filter:brightness(1.26)saturate(1.09)contrast(.99)}.projectBody{padding:28px 30px 30px}.entryMeta{margin-bottom:17px}.projectTitle h3{margin:8px 0 18px;font-size:clamp(30px,3.2vw,43px)}.projectTitle small{padding:6px 8px}.projectTitle .proposedBadge{color:var(--violet);background:#a987ff14;border-color:#a987ff59}.projectBrief{color:#bdd0d9;-webkit-line-clamp:3;-webkit-box-orient:vertical;min-height:72px;margin:0;font-size:14px;line-height:1.65;display:-webkit-box;overflow:hidden}.projectSnapshot{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:21px;padding-top:20px;display:grid}.projectSnapshot>div{border:1px solid var(--line);background:#112b3a5c;border-radius:10px;min-width:0;padding:13px}.projectSnapshot b{color:var(--cyan);font:600 8px var(--font-geist-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px;display:block}.projectSnapshot div:nth-child(2) b{color:var(--green)}.projectSnapshot div:nth-child(3) b{color:var(--orange)}.projectSnapshot p{color:#9fb5c0;-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0;font-size:11px;line-height:1.55;display:-webkit-box;overflow:hidden}.projectDetails{border-top:1px solid var(--line);margin-top:18px}.projectDetails summary{color:var(--cyan);font:600 9px var(--font-geist-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;justify-content:space-between;align-items:center;padding:16px 0 4px;list-style:none;display:flex}.projectDetails summary::-webkit-details-marker{display:none}.projectDetails summary span{font-size:15px;transition:all .2s}.projectDetails[open] summary span{transform:rotate(45deg)}.detailsBody{padding-top:8px}.detailsBody .architectureBlock,.detailsBody .learningBlock,.detailsBody .plannedMarts,.detailsBody .insights{margin-top:18px;padding-top:18px}.detailsBody .learningBlock ul,.detailsBody .insights ul{grid-template-columns:1fr}.detailsBody .plannedMarts ul{grid-template-columns:repeat(2,1fr)}.tags{margin-top:18px}.repoLink{border-top:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;margin-top:18px;padding-top:15px;font-size:11px;display:flex}.repoLink span{color:var(--cyan)}.project.olive:before{background:linear-gradient(#a7c957,#0000 45%)}.expandableText{min-width:0}.expandableText p{-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.expandableText button{color:var(--cyan);font:600 8px var(--font-geist-mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-top:9px;padding:0;display:inline-flex}.expandableText button:hover{color:var(--ink)}.expandableText button:focus-visible{outline:2px solid var(--cyan);outline-offset:4px;border-radius:2px}.projectBrief{display:block;overflow:visible}.projectBrief p{color:#bdd0d9;-webkit-line-clamp:3;font-size:14px;line-height:1.65}.projectSnapshot .expandableText p{color:#9fb5c0;-webkit-line-clamp:4;font-size:11px;line-height:1.55}.expandableText.expanded p{-webkit-line-clamp:unset}.expandableText.expanded.projectBrief{min-height:0}:root[data-theme=light] .welcomeLine{color:#176b80;background:#087f9c12;border-color:#087f9c33}:root[data-theme=light] .projectIndex{background:#edf3f3}:root[data-theme=light] .projectImage{background:#e3eaec}:root[data-theme=light] .projectImage img{filter:brightness(1.18)saturate(1.02)contrast(.98)}:root[data-theme=light] .project:hover .projectImage img{filter:brightness(1.24)saturate(1.05)contrast(.99)}:root[data-theme=light] .projectBrief p{color:#2f4b55}:root[data-theme=light] .projectSnapshot>div{background:#f7faf9}@media (width<=900px){.projectGrid{grid-template-columns:1fr}.projectGrid>.project:last-child:nth-child(odd){grid-column:auto;width:100%}.projectBrief{min-height:0}.projectSnapshot{grid-template-columns:repeat(3,1fr)}}@media (width<=640px){.welcomeLine{letter-spacing:.12em;margin-bottom:14px;font-size:8px}.projectIndex{grid-template-columns:1fr;margin-bottom:24px;padding:15px}.projectIndex>span{padding-top:0}.projectIndex a{font-size:9px}.projectGrid{gap:22px}.projectBody{padding:24px 20px 25px}.projectTitle h3{font-size:34px}.projectSnapshot{grid-template-columns:1fr}.projectSnapshot p{-webkit-line-clamp:3}.galleryMeta{display:flex}.detailsBody .plannedMarts ul{grid-template-columns:1fr}}.projectImage img,.project:hover .projectImage img,:root[data-theme=light] .projectImage img,:root[data-theme=light] .project:hover .projectImage img{filter:none}.focusLink{color:inherit;text-decoration:none;display:block}.focusLink p{transition:color .2s}.focusLink b{color:var(--cyan);font:600 8px var(--font-geist-mono);letter-spacing:.1em;text-transform:uppercase;margin-top:7px;display:inline-block}.focusLink:hover p{color:var(--ink)}.projectSlot{min-width:0;display:flex}.projectSlot>.project{width:100%}.prioritySlot{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:28px;display:grid}.priorityPlan{background:radial-gradient(circle at 88% 10%,#a987ff26,#0000 30%),linear-gradient(145deg,#141d31f7,#081620fc);border:1px solid #a987ff47;border-radius:18px;flex-direction:column;justify-content:space-between;gap:30px;padding:36px 34px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 58px #0003}.priorityPlan:before{content:"";background:linear-gradient(var(--violet),transparent 58%);width:2px;position:absolute;inset:0 auto 0 0}.priorityKicker{color:var(--violet);font:600 9px var(--font-geist-mono);letter-spacing:.15em}.priorityPlan h3{letter-spacing:-.04em;max-width:520px;margin:13px 0 16px;font-size:clamp(31px,3.2vw,45px);line-height:1.04}.priorityPlan>div>p{color:#aabec8;max-width:570px;font-family:var(--font-dm-sans),Arial,sans-serif;margin:0;font-size:14px;line-height:1.65}.priorityPlan ol{counter-reset:delivery;gap:10px;margin:0;padding:0;list-style:none;display:grid}.priorityPlan li{border:1px solid var(--line);background:#0d243180;border-radius:11px;grid-template-columns:38px 1fr;gap:13px;padding:15px;display:grid}.priorityPlan li>b{color:var(--violet);font:600 9px var(--font-geist-mono);padding-top:2px}.priorityPlan li strong{color:var(--ink);margin-bottom:5px;font-size:13px;display:block}.priorityPlan li p{color:#91aab6;font-family:var(--font-dm-sans),Arial,sans-serif;margin:0;font-size:11.5px;line-height:1.55}.priorityPlan>a{border-top:1px solid var(--line);color:var(--cyan);font:600 9px var(--font-geist-mono);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;padding-top:16px;display:flex}:root[data-theme=light] .priorityPlan{background:radial-gradient(circle at 88% 10%,#7454c81a,#0000 30%),linear-gradient(145deg,#fff,#f2f6f7);border-color:#7454c83d;box-shadow:0 20px 58px #27444d17}:root[data-theme=light] .priorityPlan>div>p,:root[data-theme=light] .priorityPlan li p{color:#405963}:root[data-theme=light] .priorityPlan li{background:#fff;border-color:#0f394626}@media (width<=900px){.prioritySlot{grid-template-columns:1fr}.projectSlot{display:block}}@media (width<=640px){.priorityPlan{padding:28px 22px}.priorityPlan h3{font-size:34px}.priorityPlan li{grid-template-columns:31px 1fr;padding:13px}.priorityPlan li p{font-size:11px}}.tags{gap:8px}.tags span{color:#d9edf4;font:650 10px var(--font-dm-sans),Arial,sans-serif;letter-spacing:.015em;background:#43d9ff17;border-color:#43d9ff4d;padding:8px 11px;box-shadow:inset 0 1px #ffffff0d}:root[data-theme=light] .tags span{color:#173d48;background:#edf7f7;border-color:#087f9c40;box-shadow:inset 0 1px #fff}body:before{transform:translate3d(0,var(--canvas-shift,0px),0) scale(1.06);will-change:transform;filter:blur(.25px);inset:-12%}body:after{transform:translate3d(0,var(--canvas-shift-reverse,0px),0);will-change:transform;inset:-8%}@media (prefers-reduced-motion:reduce){body:before,body:after{will-change:auto;transform:none}}.button,.themeToggle,.languageToggle button,.galleryControls>button,.projectIndex a,.repoLink,.priorityPlan>a,.focusLink b{font-family:var(--font-dm-sans),Arial,sans-serif;letter-spacing:.035em;font-size:12px;font-weight:700}.button,.themeToggle,.languageToggle button{border-width:1px;min-height:42px;box-shadow:inset 0 1px #ffffff12,0 8px 22px #0000001f}.kicker,.priorityKicker,.projectNumber,.open,.galleryMeta,.entryMeta,.projectTitle>div>span,.projectTitle small,.projectSummary>b,.caseBlock>b,.decision b,.insights>b,.plannedHead,.heroNote>span,.projectIndex>span{letter-spacing:.1em;font-size:11px;font-weight:650}.galleryControls>button{width:38px;height:36px;font-size:16px}.galleryDots button{width:20px;height:4px}.tags span{align-items:center;min-height:34px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}:root[data-theme=light] .button,:root[data-theme=light] .themeToggle,:root[data-theme=light] .languageToggle button{box-shadow:inset 0 1px #fff,0 8px 20px #27444d17}:root{--control-surface:#143a48d6;--control-surface-strong:#1d4c5cf0;--control-ink:#f2fbfd;--control-border:#7ddef470;--control-shadow:0 8px 24px #0003}:root[data-theme=light]{--control-surface:#ffffffe6;--control-surface-strong:#fff;--control-ink:#153944;--control-border:#087f9c52;--control-shadow:0 8px 22px #1f404b1c}.themeToggle,.lang,.projectIndex a,.galleryControls,.projectNumber,.open,.galleryMeta{border-color:var(--control-border);background:var(--control-surface);color:var(--control-ink);box-shadow:var(--control-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.themeToggle:hover,.projectIndex a:hover{background:var(--control-surface-strong);border-color:var(--cyan);color:var(--control-ink)}.lang{border:1px solid var(--control-border);min-height:42px;font-family:var(--font-dm-sans),Arial,sans-serif;border-radius:9px;align-items:center;padding:3px 6px;font-size:12px;font-weight:700}.lang button{min-width:34px;min-height:32px;color:var(--muted);border-radius:6px;font-weight:750}.lang button.active{background:var(--cyan);color:#07171d}:root[data-theme=light] .lang button.active{color:#fff}.navLinks{font-size:13px;font-weight:650}.navLinks a{padding:9px 2px}.projectIndex{background:var(--panel)}@supports (color:color-mix(in lab, red, red)){.projectIndex{background:color-mix(in srgb,var(--panel) 78%,transparent)}}.projectIndex a{font-size:12px}.projectIndex b{color:var(--cyan);font-size:11px}.projectNumber,.open{place-items:center;min-width:38px;min-height:36px;padding:7px 10px;font-size:11px;display:inline-grid;top:14px}.projectNumber{left:14px}.open{font-size:17px;right:14px}.galleryMeta{padding:7px 9px;font-size:10px;bottom:14px;left:14px}.galleryControls{gap:5px;padding:4px;bottom:14px;right:14px}.galleryControls>button{width:34px;height:32px;color:var(--control-ink);background:0 0}.galleryControls>button:hover{background:var(--cyan);color:#06171d}.galleryDots button{background:var(--control-ink)}@supports (color:color-mix(in lab, red, red)){.galleryDots button{background:color-mix(in srgb,var(--control-ink) 28%,transparent)}}.galleryDots button.active{background:var(--cyan)}.timeline{counter-reset:engineering-step}.timeline div{counter-increment:engineering-step;border-color:var(--control-border);background:linear-gradient(145deg,var(--panel),var(--panel));height:204px;min-height:204px;padding:18px;position:relative}@supports (color:color-mix(in lab, red, red)){.timeline div{background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 92%,var(--cyan) 8%),var(--panel))}}.timeline div{grid-template-rows:auto auto 1fr;align-content:start;gap:11px;display:grid;box-shadow:inset 0 1px #ffffff0d,0 10px 26px #0000001a}.timeline div:before{content:"0" counter(engineering-step);border:1px solid var(--control-border);background:var(--control-surface);width:28px;height:28px;color:var(--cyan);font:700 10px var(--font-geist-mono);border-radius:8px;place-items:center;display:grid;position:absolute;top:13px;right:13px}.timeline div b{max-width:calc(100% - 34px);font-size:15px;line-height:1.25}.timeline div strong{color:var(--cyan);font-family:var(--font-dm-sans),Arial,sans-serif;font-size:12.5px;line-height:1.35}.timeline div span{font-family:var(--font-dm-sans),Arial,sans-serif;color:var(--muted);font-size:12.5px;line-height:1.42}.skillCloud{grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;display:grid}.skillCloud .skillCard{border-color:var(--control-border);background:linear-gradient(145deg,var(--panel),var(--panel));grid-template-columns:38px minmax(0,1fr);align-items:center;gap:11px;min-width:0;min-height:64px;padding:10px 12px;display:grid}@supports (color:color-mix(in lab, red, red)){.skillCloud .skillCard{background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 92%,var(--cyan) 8%),var(--panel))}}.skillCloud .skillCard{color:var(--ink);box-shadow:inset 0 1px #ffffff0d,0 9px 22px #00000014}.skillCard i{border-right:1px solid var(--line);width:38px;height:38px;color:var(--cyan);place-items:center;padding-right:10px;font-style:normal;display:grid}.skillCard i svg{width:22px;height:22px;display:block}.skillCard b{overflow-wrap:anywhere;min-width:0;font-family:var(--font-dm-sans),Arial,sans-serif;font-size:12px;line-height:1.25}.skillCard.yellow i{color:#f2c94c}.skillCard.blue i{color:#64a7ff}.skillCard.orange i{color:#ff9b63}.skillCard.red i{color:#ff7068}.skillCard.teal i{color:#66e3ad}.skillCard.indigo i{color:#8ea2ff}.skillCard.violet i{color:#b99cff}.skillCard.slate i{color:#c8d8df}:root[data-theme=light] .skillCloud .skillCard{background:#fff;box-shadow:0 9px 22px #1f404b12}:root[data-theme=light] .themeToggle{color:#153944;background:#fff}:root[data-theme=dark] .themeToggle{background:var(--control-surface);color:#f2fbfd}.project{flex-direction:column;height:100%;display:flex}.projectBody{flex-direction:column;flex:1;display:flex}.projectBrief,.projectBrief.expanded,.expandableText.expanded.projectBrief{min-height:100px}.projectSnapshot{gap:11px;margin-top:25px;padding-top:24px}.projectSnapshot>div{background:linear-gradient(145deg,#15364594,#0c222e94);border-radius:12px;min-height:218px;padding:18px 17px}.projectSnapshot b{margin-bottom:13px;font-size:10px;line-height:1.35}.projectSnapshot .expandableText p{color:#bdd0d9;font-family:var(--font-dm-sans),Arial,sans-serif;-webkit-line-clamp:6;font-size:13px;line-height:1.62}.projectSnapshot .expandableText button,.expandableText button,.projectDetails summary{font-family:var(--font-dm-sans),Arial,sans-serif;font-size:10px;font-weight:750}:root[data-theme=light] .projectSnapshot>div{background:linear-gradient(145deg,#fff,#f2f7f7);border-color:#0f394630;box-shadow:0 8px 20px #1f404b0f}:root[data-theme=light] .projectSnapshot .expandableText p{color:#2f4b55}.tags{align-content:flex-start;min-height:76px}.repoLink{border-top:1px solid var(--line);min-height:50px;margin-top:0;padding-top:16px;font-size:12px;font-weight:750}.repoLink:hover{color:var(--cyan)}@media (width<=1100px){.skillCloud{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=780px){.projectSnapshot{grid-template-columns:1fr}.projectSnapshot>div{min-height:0}.skillCloud{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.skillCloud{grid-template-columns:1fr}.skillCloud .skillCard{min-height:58px}.navLinks{font-size:12px}.galleryMeta{display:none}}:root{--shell:min(1320px,calc(100% - 24px))}.aboutGrid{padding-inline:64px}@media (width<=900px){.aboutGrid{padding-inline:36px}}@media (width<=640px){:root{--shell:calc(100% - 28px)}.aboutGrid{padding-inline:20px}}.portraitWrap:before{display:none}.projectImage .projectNumber,.projectImage .open,.projectImage .galleryMeta,.projectImage .galleryControls{opacity:0;pointer-events:none;transition:opacity .22s,transform .22s,background .2s;transform:translateY(5px)}.projectImage:hover .projectNumber,.projectImage:hover .open,.projectImage:hover .galleryMeta,.projectImage:hover .galleryControls,.projectImage:focus-within .projectNumber,.projectImage:focus-within .open,.projectImage:focus-within .galleryMeta,.projectImage:focus-within .galleryControls{opacity:1;pointer-events:auto;transform:translateY(0)}@media (hover:none){.projectImage .projectNumber,.projectImage .open,.projectImage .galleryMeta,.projectImage .galleryControls{opacity:1;pointer-events:auto;transform:none}}@media (prefers-reduced-motion:reduce){.projectImage .projectNumber,.projectImage .open,.projectImage .galleryMeta,.projectImage .galleryControls{transition:none}}.prioritySlot .projectBody>.tags{border-top:1px solid var(--line);min-height:76px;margin-top:auto;padding-top:16px}.priorityDetails{border-top:1px solid var(--line);min-height:76px;margin-top:auto}.priorityPlan{padding-bottom:30px}.priorityDetails summary{align-items:center;min-height:75px;padding:0}.priorityDetails[open] summary{min-height:58px}.mark{align-content:center;gap:2px;display:grid}.mark b{font:650 11px/1.15 var(--font-geist-mono);letter-spacing:.075em}.mark b:after{content:none}.mark small{color:var(--muted);font:500 9px/1.25 var(--font-geist-mono);letter-spacing:.045em}.hero{grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);gap:48px;min-height:680px;padding:74px 0 96px}.heroCopy{max-width:720px}.hero h1{margin:24px 0 20px}.hero .lede{text-align:left;text-wrap:pretty;max-width:620px;margin:0}.heroActions{margin-top:24px}.heroNote{border:1px solid var(--line);background:#0d222f6b;border-radius:12px;max-width:620px;margin-top:24px;padding:16px 18px}.futureGoal{grid-template-columns:132px 1fr;align-items:center}.futureGoal>div{align-items:center;gap:12px;display:flex}.futureGoal i{width:27px;height:27px;color:var(--cyan);background:linear-gradient(145deg,#43d9ff26,#6c8cff1a);border:1px solid #43d9ff4d;border-radius:8px;flex:0 0 27px;place-items:center;font-size:14px;font-style:normal;display:grid;box-shadow:inset 0 0 18px #43d9ff14}.futureGoal p{font-size:13px;line-height:1.55}.contactButton{gap:10px}.contactButton svg,.linkedInButton svg,.footerActions .button svg{flex:0 0 15px;width:15px;height:15px}.contactButton b{font:500 14px var(--font-geist-mono);color:var(--cyan)}.linkedInButton{gap:10px}.portraitWrap{width:100%;max-width:435px;transform:translateY(24px)}.portraitGrid{opacity:.28}:root[data-theme=light] .heroNote{background:#ffffffb8;box-shadow:0 12px 34px #1f404b12}:root[data-theme=light] .mark small{color:#526a74}.motionReady .scrollScene{opacity:.2;filter:blur(3px);will-change:opacity,filter,transform;transition:opacity .68s,filter .68s,transform .68s cubic-bezier(.22,.61,.36,1);transform:translateY(22px)scale(.993)}.motionReady .scrollScene.isActive{opacity:1;filter:blur();transform:none}@media (width<=900px){.hero{grid-template-columns:1fr;gap:42px}.portraitWrap{transform:none}}@media (width<=640px){.mark small{letter-spacing:.02em;font-size:8px}.mark b{font-size:12px;display:block}.heroNote{padding:15px}.futureGoal{grid-template-columns:1fr;gap:10px}}@media (prefers-reduced-motion:reduce){.motionReady .scrollScene{opacity:1;filter:none;will-change:auto;transition:none;transform:none}}.detailsBody{overflow-wrap:break-word;min-width:0}.detailsBody .architectureBlock p,.detailsBody .learningBlock li,.detailsBody .insights li{overflow-wrap:break-word;word-break:normal;text-wrap:pretty}.detailsBody .plannedMarts ul{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:stretch}.detailsBody .plannedMarts li{grid-template-columns:minmax(0,1fr);align-content:start;gap:10px;min-height:94px;display:grid}.detailsBody .plannedMarts code{overflow-wrap:normal;word-break:normal;white-space:normal;width:100%;font-size:12px;line-height:1.45;display:block}.detailsBody .plannedMarts small{place-self:start;width:max-content}@media (width<=640px){.detailsBody .plannedMarts ul{grid-template-columns:1fr}.detailsBody .plannedMarts li{min-height:0}}.portraitWrap{isolation:isolate;box-shadow:none;background:0 0;overflow:visible}.portraitWrap img{z-index:1;filter:saturate(.78)contrast(1.05)brightness(.98);border-radius:28px;position:relative;-webkit-mask-image:radial-gradient(92% 94% at 52% 45%,#000 69%,#000000e0 79%,#0000 100%);mask-image:radial-gradient(92% 94% at 52% 45%,#000 69%,#000000e0 79%,#0000 100%)}.portraitWrap:after{z-index:-1;filter:blur(24px);background:radial-gradient(circle at 48% 42%,#43d9ff33,#6c8cff17 48%,#0000 72%);border-radius:38%;inset:-9%}.portraitGrid{opacity:.13;border-radius:28px;-webkit-mask-image:radial-gradient(90% 92% at 52% 45%,#000 66%,#0000 100%);mask-image:radial-gradient(90% 92% at 52% 45%,#000 66%,#0000 100%)}:root[data-theme=light] .portraitWrap img{filter:saturate(.82)contrast(1.01)brightness(1.04)}.projectSlot{align-self:stretch;min-width:0;display:flex}.projectSlot>.project{width:100%;height:100%}.projectBody{height:100%}.projectBody>.projectDetails{margin-top:18px}.projectBody>.tags{margin-top:auto;padding-top:18px}.projectBody>.repoLink{margin-top:0}.journey{isolation:isolate;position:relative;overflow:hidden}.journey:before{content:"";z-index:-1;filter:blur(18px);background:radial-gradient(circle,#43d9ff29,#0000 68%);height:85%;position:absolute;inset:-40% 35% auto -10%}.timeline{position:relative}.timeline i{background:linear-gradient(90deg,var(--step-a,var(--cyan)),var(--step-b,var(--violet)));opacity:.8;height:2px}.timeline div{border-top:3px solid var(--step,var(--cyan));background:linear-gradient(155deg,var(--panel),var(--panel));overflow:hidden}@supports (color:color-mix(in lab, red, red)){.timeline div{background:linear-gradient(155deg,color-mix(in srgb,var(--panel) 88%,var(--step,var(--cyan)) 12%),var(--panel))}}.timeline div{box-shadow:inset 0 1px 0 #ffffff12,0 14px 34px var(--step,var(--cyan))}@supports (color:color-mix(in lab, red, red)){.timeline div{box-shadow:inset 0 1px 0 #ffffff12,0 14px 34px color-mix(in srgb,var(--step,var(--cyan)) 10%,transparent)}}.timeline div:after{content:"";border:1px solid var(--step,var(--cyan));width:88px;height:88px;position:absolute;bottom:-28px;right:-22px}@supports (color:color-mix(in lab, red, red)){.timeline div:after{border:1px solid color-mix(in srgb,var(--step,var(--cyan)) 38%,transparent)}}.timeline div:after{box-shadow:0 0 0 13px var(--step,var(--cyan));border-radius:50%}@supports (color:color-mix(in lab, red, red)){.timeline div:after{box-shadow:0 0 0 13px color-mix(in srgb,var(--step,var(--cyan)) 5%,transparent)}}.timeline div:before,.timeline div strong{color:var(--step,var(--cyan))}.timeline div:first-of-type{--step:#43d9ff}.timeline div:nth-of-type(2){--step:#6c8cff}.timeline div:nth-of-type(3){--step:#a987ff}.timeline div:nth-of-type(4){--step:#66e3ad}.timeline i:first-of-type{--step-a:#43d9ff;--step-b:#6c8cff}.timeline i:nth-of-type(2){--step-a:#6c8cff;--step-b:#a987ff}.timeline i:nth-of-type(3){--step-a:#a987ff;--step-b:#66e3ad}:root[data-theme=light] .journey{background:linear-gradient(135deg,#fffffff5,#f5faf9f0);border-color:#0f39462e}:root[data-theme=light] .timeline div{background:linear-gradient(155deg,#fff,#fff)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light] .timeline div{background:linear-gradient(155deg,#fff,color-mix(in srgb,#fff 91%,var(--step) 9%))}}:root[data-theme=light] .timeline div{box-shadow:0 14px 34px var(--step)}@supports (color:color-mix(in lab, red, red)){:root[data-theme=light] .timeline div{box-shadow:0 14px 34px color-mix(in srgb,var(--step) 10%,transparent)}}main{isolation:isolate;position:relative;overflow:clip}main:before{content:"";z-index:-1;pointer-events:none;opacity:.035;filter:blur(44px)saturate(1.25);background-image:url(/images/projects/alpine.png),url(/images/projects/danube.png);background-position:-12vw 18vh,68vw 64vh;background-repeat:no-repeat;background-size:58vw,56vw;position:fixed;inset:-90px;transform:scale(1.08)}@media (width<=900px){.projectSlot{display:block}.projectSlot>.project,.prioritySlot>.project,.prioritySlot>.priorityPlan{height:auto}main:before{opacity:.025;background-position:-35vw 22vh,35vw 72vh;background-size:100vw,100vw}}@media (prefers-reduced-motion:reduce){main:before{transform:none}}:root[data-theme=light]{--bg:#edf1f3;--panel:#f9fbfc;--panel-2:#e4eaee;--ink:#101f2a;--muted:#4b606d;--line:#16314230;--cyan:#007d9c;--blue:#245f96;--violet:#355f87;--green:#247260;--orange:#8b5b28}:root[data-theme=light] body:before{background:radial-gradient(circle at 13% 9%,#007d9c1c,#0000 27%),radial-gradient(circle at 88% 28%,#245f9614,#0000 26%),linear-gradient(#22475b0e 1px,#0000 1px) 0 0/48px 48px,linear-gradient(90deg,#22475b0e 1px,#0000 1px) 0 0/48px 48px}:root[data-theme=light] body:after{background:linear-gradient(90deg,#0000 0 8%,#0056740b 8% 8.1%,#0000 8.1% 91.9%,#0056740b 91.9% 92%,#0000 92%)}:root[data-theme=light] .nav{background:#edf1f3e6}:root[data-theme=light] .hero h1 em{color:#0000;background:linear-gradient(100deg,#006f8d,#245f96 56%,#173f68);-webkit-background-clip:text;background-clip:text}:root[data-theme=light] .about{background:radial-gradient(circle at 18% 18%,#007d9c1a,#0000 32%),linear-gradient(135deg,#e7eef1,#f8fafb 58%,#e5ebef);border-color:#16314233;box-shadow:0 24px 70px #192f3d1c}:root[data-theme=light] .project,:root[data-theme=light] .priorityPlan,:root[data-theme=light] .journey,:root[data-theme=light] .skills>.shell{border-color:#16314233;box-shadow:0 20px 56px #192f3d1a}:root[data-theme=light] .priorityPlan{background:radial-gradient(circle at 88% 10%,#245f961a,#0000 30%),linear-gradient(145deg,#fbfcfd,#e9eef2)}:root[data-theme=light] .project.rose:before{background:linear-gradient(#7f5261,#0000 45%)}:root[data-theme=light] .project.violet:before,:root[data-theme=light] .priorityPlan:before{background:linear-gradient(#355f87,#0000 52%)}:root[data-theme=light] .portraitWrap:after{background:radial-gradient(circle at 48% 42%,#007d9c29,#245f9614 48%,#0000 72%)}:root[data-theme=light] .journey{background:linear-gradient(135deg,#f9fbfcfa,#e5ecf0f5)}:root[data-theme=light] .journey:before{background:radial-gradient(circle,#007d9c1f,#0000 68%)}:root[data-theme=light] .timeline div:first-of-type{--step:#007d9c}:root[data-theme=light] .timeline div:nth-of-type(2){--step:#245f96}:root[data-theme=light] .timeline div:nth-of-type(3){--step:#496a86}:root[data-theme=light] .timeline div:nth-of-type(4){--step:#247260}:root[data-theme=light] .timeline i:first-of-type{--step-a:#007d9c;--step-b:#245f96}:root[data-theme=light] .timeline i:nth-of-type(2){--step-a:#245f96;--step-b:#496a86}:root[data-theme=light] .timeline i:nth-of-type(3){--step-a:#496a86;--step-b:#247260}:root[data-theme=light] .skillCloud .skillCard{background:linear-gradient(150deg,#fbfcfd,#e8eef1);border-color:#16314233;box-shadow:0 9px 22px #192f3d14}:root[data-theme=light] .skillCard.yellow i{color:#8b6a21}:root[data-theme=light] .skillCard.blue i{color:#245f96}:root[data-theme=light] .skillCard.orange i{color:#8b5b28}:root[data-theme=light] .skillCard.red i{color:#8a4650}:root[data-theme=light] .skillCard.teal i{color:#247260}:root[data-theme=light] .skillCard.indigo i,:root[data-theme=light] .skillCard.violet i{color:#496a86}:root[data-theme=light] .skillCard.slate i{color:#536976}:root[data-theme=light] .footer{color:#101f2a;background:#dfe6ea}:root[data-theme=light] main:before{opacity:.04;filter:blur(52px)saturate(.72);mix-blend-mode:multiply}.evidenceNotes{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:18px;padding:18px 0}.evidenceNotes>b{color:var(--cyan);font:600 9px/1.45 var(--font-geist-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:9px;display:block}.evidenceNotes p{color:var(--muted);text-wrap:pretty;margin:0;font-size:12px;line-height:1.75}.evidenceNotes strong{color:var(--ink);font:650 13px var(--font-geist-mono)}.evidenceNotes span{color:var(--cyan);padding-inline:7px}@supports (color:color-mix(in lab, red, red)){.evidenceNotes span{color:color-mix(in srgb,var(--cyan) 70%,var(--muted))}}.projectGroupHead{--group-accent:var(--cyan);isolation:isolate;border:1px solid var(--line);border-left:3px solid var(--group-accent);background:linear-gradient(115deg,var(--panel),var(--panel));border-radius:14px;grid-column:1/-1;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:30px;padding:24px 28px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.projectGroupHead{background:linear-gradient(115deg,color-mix(in srgb,var(--panel) 88%,var(--group-accent) 12%),var(--panel))}}.projectGroupHead{box-shadow:0 16px 42px #0000001a}.projectGroupHead:after{content:"";z-index:-1;background:linear-gradient(90deg,transparent,var(--group-accent));width:170px;height:1px;box-shadow:42px -34px 0 var(--group-accent),86px 34px 0 var(--group-accent);position:absolute;top:50%;right:-22px}@supports (color:color-mix(in lab, red, red)){.projectGroupHead:after{box-shadow:42px -34px 0 color-mix(in srgb,var(--group-accent) 26%,transparent),86px 34px 0 color-mix(in srgb,var(--group-accent) 18%,transparent)}}.projectGroupHead:after{opacity:.65}.projectGroupHead>span{border:1px solid var(--group-accent);justify-self:start;padding:7px 9px}@supports (color:color-mix(in lab, red, red)){.projectGroupHead>span{border:1px solid color-mix(in srgb,var(--group-accent) 34%,transparent)}}.projectGroupHead>span{background:var(--group-accent);border-radius:6px}@supports (color:color-mix(in lab, red, red)){.projectGroupHead>span{background:color-mix(in srgb,var(--group-accent) 8%,transparent)}}.projectGroupHead>span{color:var(--group-accent);font:600 9px/1.5 var(--font-geist-mono);letter-spacing:.14em}.projectGroupHead h3{letter-spacing:-.035em;margin:0 0 8px;font-size:clamp(27px,3vw,39px);line-height:1.05}.projectGroupHead p{max-width:650px;color:var(--muted);margin:0;font-size:13px;line-height:1.65}.projectGroupHead.upcomingGroupHead{--group-accent:var(--orange)}.projectGroupHead.engineeringGroupHead{--group-accent:var(--cyan);margin-top:38px}.projectGroupHead.analyticsGroupHead{--group-accent:var(--green);margin-top:48px}.projectSlot.groupFeature{grid-column:1/-1;width:100%}:root[data-theme=light] .projectGroupHead{border-color:#16314238;box-shadow:0 15px 38px #192f3d14}@media (width<=900px){.projectGroupHead{padding-inline:0;grid-template-columns:1fr;gap:10px;padding:22px}.projectSlot.groupFeature{width:100%}}.projectBody{flex-direction:column;display:flex}.projectSlot:not(.prioritySlot):not(.groupFeature) .entryMeta{min-height:18px}.projectSlot:not(.prioritySlot):not(.groupFeature) .projectTitle{min-height:93px}.projectSlot:not(.prioritySlot):not(.groupFeature) .projectBrief{min-height:99px}.projectSlot:not(.prioritySlot):not(.groupFeature) .projectSnapshot{min-height:241px}.projectSlot:not(.prioritySlot):not(.groupFeature) .projectDetails{min-height:38px}.projectSlot:not(.prioritySlot):not(.groupFeature) .tags{min-height:75px;margin-top:0;padding-top:18px}.projectSlot:not(.prioritySlot):not(.groupFeature) .repoLink{min-height:50px;margin-top:0}.projectDetails[open] .detailsBody{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--cyan) transparent;max-height:min(50vh,460px);padding-right:12px;overflow-y:auto}.projectDetails[open] .detailsBody::-webkit-scrollbar{width:5px}.projectDetails[open] .detailsBody::-webkit-scrollbar-thumb{background:var(--cyan);border-radius:8px}.projectGrid{align-items:start}.projectSlot{align-self:start;display:block}.projectSlot>.project{height:auto}.prioritySlot{align-items:start}.prioritySlot>.project,.prioritySlot>.priorityPlan{height:auto}.expandableText.expanded p,.projectSnapshot .expandableText.expanded p{-webkit-line-clamp:unset;-webkit-box-orient:initial;display:block;overflow:visible}main:after{content:"";z-index:-2;pointer-events:none;opacity:.22;background-image:radial-gradient(circle,#43d9ff85 0 1px,#0000 1.5px),linear-gradient(32deg,#0000 49.72%,#6c8cff29 49.86% 50.14%,#0000 50.28%),linear-gradient(148deg,#0000 49.76%,#66e3ad1f 49.9% 50.1%,#0000 50.24%);background-position:8px 6px,-80px 30px,120px -40px;background-size:72px 72px,360px 250px,440px 310px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000 2%,#000 18% 88%,#0000 100%);mask-image:linear-gradient(#0000 2%,#000 18% 88%,#0000 100%)}:root[data-theme=light] main:after{opacity:.25;background-image:radial-gradient(circle,#005f7d6b 0 1px,#0000 1.5px),linear-gradient(32deg,#0000 49.72%,#245f9621 49.86% 50.14%,#0000 50.28%),linear-gradient(148deg,#0000 49.76%,#2472601c 49.9% 50.1%,#0000 50.24%)}@media (width<=640px){.projectDetails[open] .detailsBody{max-height:64vh}}@media (width>=901px){.projectGrid:not(:has(.projectDetails[open])) .projectSlot:not(.prioritySlot):not(.groupFeature):not(:has(button[aria-expanded=true])){align-self:stretch;display:flex}.projectGrid:not(:has(.projectDetails[open])) .projectSlot:not(.prioritySlot):not(.groupFeature):not(:has(button[aria-expanded=true]))>.project{flex-direction:column;height:100%;display:flex}.projectGrid:not(:has(.projectDetails[open])) .projectSlot:not(.prioritySlot):not(.groupFeature):not(:has(button[aria-expanded=true])) .projectBody{flex:1}.projectGrid:not(:has(.projectDetails[open])) .projectSlot:not(.prioritySlot):not(.groupFeature):not(:has(button[aria-expanded=true])) .tags{margin-top:auto}.projectGrid:not(:has(.projectDetails[open])) .projectSlot:not(.prioritySlot):not(.groupFeature):not(:has(button[aria-expanded=true])) .projectSnapshot{min-height:271px}}@media (width<=900px){.projectSlot:not(.prioritySlot):not(.groupFeature) .entryMeta,.projectSlot:not(.prioritySlot):not(.groupFeature) .projectTitle,.projectSlot:not(.prioritySlot):not(.groupFeature) .projectBrief,.projectSlot:not(.prioritySlot):not(.groupFeature) .projectSnapshot,.projectSlot:not(.prioritySlot):not(.groupFeature) .projectDetails,.projectSlot:not(.prioritySlot):not(.groupFeature) .tags,.projectSlot:not(.prioritySlot):not(.groupFeature) .repoLink{min-height:0}.projectSlot:not(.prioritySlot):not(.groupFeature) .tags{margin-top:18px;padding-top:0}.projectSlot:not(.prioritySlot):not(.groupFeature) .repoLink{margin-top:18px}.projectDetails[open] .detailsBody{max-height:none;padding-right:0;overflow:visible}}@media (width<=640px){.nav{gap:12px}.mark{min-width:0}.mark b{letter-spacing:.055em;white-space:nowrap;font-size:10px}.mark small{white-space:nowrap;font-size:7px}.lang button{padding-inline:5px}.hero{gap:38px;padding-top:48px}.hero h1{font-size:clamp(42px,12.5vw,50px)}.heroActions .button,.footerActions .button{justify-content:space-between;width:100%}.portraitWrap{justify-self:center;width:min(100%,340px)}.aboutGrid,.journey{padding-inline:20px}.projectGroupHead{border-radius:16px;padding:19px 18px}.projectGroupHead h3{font-size:30px}.projectGroupHead p{font-size:12.5px}.projectImage{aspect-ratio:16/9}.projectBody{padding:24px 19px 26px}.entryMeta{gap:6px;font-size:8px;line-height:1.45}.projectTitle h3{font-size:34px;line-height:1.02}.projectBrief p{-webkit-line-clamp:4}.projectSnapshot{gap:10px;margin-top:22px;padding-top:20px}.projectSnapshot>div{min-height:0;padding:16px}.projectSnapshot .expandableText p{-webkit-line-clamp:4;font-size:13px;line-height:1.6}.expandableText button{white-space:nowrap;min-height:32px;margin-top:7px;font-size:9px;line-height:1}.expandableText button span{line-height:1;display:inline}.projectDetails summary{min-height:48px;padding-top:14px;font-size:10px}.detailsBody{padding-top:4px}.detailsBody .architectureBlock,.detailsBody .learningBlock,.detailsBody .plannedMarts,.detailsBody .insights{margin-top:16px;padding-top:16px}.tags{min-height:0}.repoLink{min-height:48px}.priorityPlan{padding:25px 20px}.footer{padding-top:84px}.footerBase{align-items:flex-start}}@media (width>=901px){.prioritySlot{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.prioritySlot>.project,.prioritySlot>.priorityPlan{height:100%}.prioritySlot>.project{flex-direction:column;display:flex}.prioritySlot>.project .projectBody{display:none}.prioritySlot>.project .projectImage{aspect-ratio:auto;border-bottom:0;flex:1;height:100%;min-height:0}.prioritySlot>.project .projectImage img{object-fit:contain}.priorityPlan{justify-content:flex-start;gap:20px;padding:30px}.priorityPlan ol{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.priorityPlan li{min-height:118px}.priorityDetails{margin-top:auto}}@media (width<=900px){.prioritySlot>.project .projectImage{aspect-ratio:16/9;height:auto}.priorityPlan ol{grid-template-columns:1fr}}
