@font-face{font-family:cabinet;src:url(../media/cabinet_0-s.p.0uakd5riqetwl.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:cabinet;src:url(../media/cabinet_1-s.p.04gy6nxscbf83.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:cabinet;src:url(../media/cabinet_2-s.p.086lcsqj9e5fm.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:cabinet Fallback;src:local(Arial);ascent-override:90.64%;descent-override:29.17%;line-gap-override:9.38%;size-adjust:95.99%}.cabinet_e22d34d3-module__mK4H1a__className{font-family:cabinet,cabinet Fallback}.cabinet_e22d34d3-module__mK4H1a__variable{--font-cabinet:"cabinet", "cabinet Fallback"}
:root{--ink:#252726;--muted:#747774;--line:#3238341a;--font:var(--font-cabinet), sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;background:#f8f8f7}button,textarea{font:inherit;color:inherit}button,a,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,textarea:focus-visible,pre:focus-visible{outline-offset:4px;outline:2px solid #7b817b}::selection{background:#e1e3df}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:30;background:var(--ink);color:#fff;border-radius:10px;padding:12px 20px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:16px}.portfolio-app{isolation:isolate;background:#f8f8f7;flex-direction:column;height:100dvh;min-height:480px;padding:26px 44px 30px;display:flex;position:relative;overflow:hidden}.aurora-background{z-index:-1;pointer-events:none;contain:layout paint;position:absolute;inset:0;overflow:hidden}.aurora-wash{opacity:.53;background:radial-gradient(at 22% 40%,#f2a0b6a6,#0000 41%),radial-gradient(at 48% 37%,#fbd296bf,#0000 39%),radial-gradient(at 78% 41%,#98b9f5b3,#0000 42%);width:145%;height:125%;animation:42s cubic-bezier(.45,0,.55,1) infinite alternate aurora-drift;position:absolute;top:-24%;left:-22%}.aurora-light{opacity:.3;background:radial-gradient(at 35% 48%,#fff4e799,#0000 50%),radial-gradient(at 76%,#e6dffb59,#0000 45%);width:130%;height:110%;animation:36s cubic-bezier(.45,0,.55,1) infinite alternate aurora-breathe;position:absolute;top:-19%;left:-15%}.aurora-fade{background:linear-gradient(#f9f9f714,#f9f9f71a 28%,#f9f9f754 52%,#f9f9f7d1 82%,#f8f8f7 100%);position:absolute;inset:0}@keyframes aurora-drift{0%{transform:translate(-2%,-1%)rotate(-5deg)scale(1.04)}to{transform:translate(4%,3%)rotate(5deg)scale(1.09)}}@keyframes aurora-breathe{0%{transform:translate(4%)scale(1)}to{transform:translate(-5%,4%)scale(1.1)}}.topbar{flex-shrink:0;justify-content:space-between;align-items:center;width:100%;max-width:1180px;min-height:44px;margin:0 auto;display:flex}.identity{letter-spacing:-.55px;background:0 0;align-items:baseline;padding:10px 0;font-size:21px;font-weight:700;display:flex}.identity-period{color:#969996}.navigation{align-items:center;gap:26px;display:flex}.nav-item{color:#747874;background:0 0;justify-content:center;align-items:center;min-height:44px;padding:7px 0;font-size:13px;transition:color .2s;display:inline-flex}.nav-item:hover,.nav-item.selected{color:var(--ink)}.chat-view{flex:1;min-height:0;transition:opacity .2s;display:flex}.chat-view[inert]{opacity:.18;filter:blur(5px)}.chat-main{flex-direction:column;flex:1;justify-content:center;width:100%;max-width:740px;min-height:0;margin:0 auto;padding:0 0 92px;display:flex}.welcome{text-align:center;margin-bottom:34px}h1{letter-spacing:-1.55px;margin:0 0 15px;font-size:clamp(32px,3.6vw,44px);font-weight:500;line-height:1.16}.welcome-description{color:#7b7d79;margin:0;font-size:15px;line-height:1.6}.composer-area{flex-shrink:0;width:100%;position:relative}.glass{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fff6;border:1px solid #ffffffb3;position:relative}.glass:has(>.liquid-layer){-webkit-backdrop-filter:none;backdrop-filter:none;isolation:isolate;background:0 0;overflow:hidden}.glass:has(>.liquid-layer)>:not(.liquid-layer):not(.sr-only){z-index:1;position:relative}.liquid-layer{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.lens-defs{position:absolute;overflow:hidden}.glass-refract,.glass-tint,.glass-specular{border-radius:inherit;display:block;position:absolute;inset:0}.glass-refract{isolation:isolate}.glass-tint{background:linear-gradient(130deg,#ffffffa6,#ffffff52 65%,#ffffff7a)}.glass-specular{box-shadow:inset 0 1px #ffffffb3,inset 0 -1px #ffffff1f}.composer-shell{border-radius:34px;align-items:center;gap:9px;min-height:66px;padding:11px 13px 11px 12px;transition:box-shadow .35s cubic-bezier(.2,.7,.2,1);display:flex;box-shadow:0 3px 8px #504e5806,0 14px 36px -20px #504e5824}.composer-shell:focus-within{box-shadow:0 3px 8px #504e5806,0 14px 36px -20px #504e582e,0 0 0 2px #ffffff4d}.composer-shell textarea{resize:none;background:0 0;border:0;outline:none;flex:1;width:100%;min-width:0;min-height:24px;max-height:112px;padding:0;font-size:15px;line-height:24px;display:block;overflow-y:auto}.composer-shell textarea:focus-visible{outline:none}.composer-shell textarea::placeholder{color:#81847f}.icon-button{color:#848980;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,color .2s;display:inline-flex}.icon-button:hover{color:var(--ink);background:#3a41380b}.composer-leading{align-self:flex-end}.send-tools{flex-shrink:0;align-self:flex-end;align-items:center;gap:6px;display:flex}.send-button{color:#fff;background:#323731;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:background .18s,transform .3s cubic-bezier(.2,.7,.2,1);display:flex}.send-button:hover{background:#232822}.send-button:active{transform:scale(.95)}.send-button:disabled{color:#a4ada0;background:#464f4117}.character-count{color:var(--muted);font-size:10px}.has-conversation .chat-main{justify-content:flex-start;padding:16px 0 0}.conversation-scroll{scrollbar-width:thin;scrollbar-color:#d1d5cd transparent;flex:1;min-height:0;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 16px calc(100% - 20px),#0000);mask-image:linear-gradient(#0000,#000 16px calc(100% - 20px),#0000)}.conversation{padding:22px 5px 35px}.message{margin-bottom:34px;animation:.25s ease-out message-enter}.message.user{justify-content:flex-end;padding-left:42px;display:flex}.user-bubble{overflow-wrap:anywhere;white-space:pre-wrap;background:#ffffff80;border:1px solid #fff9;border-radius:20px 20px 6px;max-width:88%;margin:0;padding:12px 17px;font-size:15px;line-height:1.6}.answer-heading{color:#8a9084;margin-bottom:13px;font-size:11px}.answer-content{color:#4a5044;overflow-wrap:anywhere;font-size:15px;line-height:1.8}.answer-content p{margin:0 0 14px}.answer-content>:last-child{margin-bottom:0}.answer-content strong{color:#343d2e;font-weight:700}.answer-content a{text-underline-offset:3px;color:#566b49;-webkit-text-decoration:underline #bfc9b7;text-decoration:underline #bfc9b7;display:inline}.answer-content a svg{vertical-align:baseline;margin-left:3px;display:inline-block}.answer-content a:hover{color:#34472b}.answer-content ul,.answer-content ol{margin:0 0 16px;padding-left:23px}.answer-content li{margin-bottom:6px}.answer-content h1,.answer-content h2,.answer-content h3{letter-spacing:-.3px;margin:20px 0 8px;font-size:18px;font-weight:700;line-height:1.3}.answer-content code{background:#495a3f0e;border-radius:4px;padding:2px 5px;font-size:.85em}.answer-content pre{border:1px solid var(--line);background:#fff6;border-radius:12px;max-width:100%;padding:16px;font-size:13px;line-height:1.5;overflow-x:auto}.answer-content pre code{background:0 0;padding:0}.answer-content blockquote{color:var(--muted);border-left:2px solid #c7cec0;margin:16px 0;padding-left:15px}.table-scroll{max-width:100%;overflow-x:auto}.answer-content table{border-collapse:collapse;margin:14px 0;font-size:13px}.answer-content td,.answer-content th{border-bottom:1px solid var(--line);text-align:left;padding:9px 15px 9px 0}.copy-answer{color:#9ba292;width:28px;height:28px;margin:9px 0 0 -6px}.answer-loading{gap:5px;padding:10px 0 12px;display:flex}.answer-loading>span:not(.sr-only){background:#a5ae9c;border-radius:50%;width:5px;height:5px;animation:1.2s ease-in-out infinite thinking}.answer-loading>span:nth-child(2){animation-delay:.15s}.answer-loading>span:nth-child(3){animation-delay:.3s}.interrupted{color:var(--muted);margin:12px 0 0;font-size:11px}.chat-error{color:#805f45;background:#f9f1ea99;border:1px solid #dfd3c8;border-radius:13px;padding:12px 15px;font-size:13px}.chat-error p{margin:0 0 7px}.chat-error button{color:#71553e;text-underline-offset:3px;background:0 0;align-items:center;gap:6px;padding:2px 0;font-size:12px;text-decoration:underline;display:flex}.scroll-down{z-index:2;border-radius:50%;position:absolute;bottom:calc(100% + 12px);left:calc(50% - 18px)}@keyframes thinking{0%,80%,to{opacity:.3}40%{opacity:1}}.topbar[inert] .navigation{visibility:hidden}.modal-layer{z-index:20;justify-content:flex-end;align-items:flex-start;padding:96px max(44px,50vw - 590px) 24px;display:flex;position:fixed;inset:0}.modal-scrim{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#31323606;animation:.2s ease-out scrim-enter;position:absolute;inset:0}.portfolio-modal{-webkit-backdrop-filter:blur(34px)saturate(1.12);backdrop-filter:blur(34px)saturate(1.12);transform-origin:100% 0;background:linear-gradient(135deg,#fffc,#fafafbb8);border:1px solid #ffffffbf;border-radius:20px;flex-direction:column;width:min(720px,100%);max-height:calc(100dvh - 120px);animation:.28s cubic-bezier(.2,.8,.2,1) menu-enter;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 55px -18px #403d4b30,0 3px 12px #403d4b09,inset 0 1px #fff9}.modal-contact{width:min(390px,100%)}.modal-journey{width:min(560px,100%)}.menu-bar{border-bottom:1px solid #3f434111;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px 11px 17px;display:flex}.menu-sections{align-items:center;gap:5px;display:flex}.menu-sections button{color:#747772;background:0 0;border-radius:7px;min-height:34px;padding:7px 12px;font-size:13px;line-height:20px;transition:background .2s,color .2s}.menu-sections button:hover{color:var(--ink)}.menu-sections button.active{color:var(--ink);background:#ffffffb8;font-weight:500;box-shadow:0 1px 3px #31343009}.menu-close{color:#858882;width:30px;height:30px}.modal-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#6468642e transparent;width:100%;min-height:0;overflow-y:auto}.project-browser{grid-template-columns:185px minmax(0,1fr);min-height:370px;display:grid}.project-selector{background:#f0eff32e;border-right:1px solid #3f434111;padding:18px 12px}.project-selector button{text-align:left;color:#747a71;background:0 0;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;width:100%;min-height:46px;margin:2px 0;padding:12px 13px;font-size:15px;transition:color .2s,background .2s;display:flex}.project-selector button.active{color:#30342e;background:#fffc;font-weight:500;box-shadow:0 1px 4px #35343a09}.project-selector button:hover{color:var(--ink);background:#ffffff7a}.project-selector svg{opacity:0;color:#8e938a;transition:opacity .2s}.project-selector button.active svg{opacity:1}.project-detail{min-width:0;padding:31px 33px 29px}.project-detail-content{flex-direction:column;min-height:300px;animation:.2s ease-out message-enter;display:flex}.project-detail h3{letter-spacing:-.9px;margin:0 0 10px;font-size:30px;font-weight:500;line-height:1.2}.project-stack-line{color:#7d8179;margin:0 0 25px;font-size:12px;line-height:1.7}.project-detail-copy{color:#545b4e;text-wrap:pretty;font-size:14px;line-height:1.8}.project-detail-copy p{margin:0 0 14px}.project-detail-copy p:last-child{margin-bottom:0}.project-detail-actions{justify-content:space-between;align-items:center;gap:20px;margin-top:auto;padding-top:28px;display:flex}.menu-link{color:#444d3d;background:0 0;align-items:center;gap:8px;padding:3px 0;font-size:13px;line-height:1.5;display:inline-flex}.menu-link svg{transition:transform .2s}.menu-link:hover svg{transform:translate(2px)}.menu-link:hover{color:#20271b}.journey-content{padding:29px 32px 28px;animation:.2s ease-out message-enter}.education{border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:23px}.education h3{letter-spacing:-.65px;justify-content:space-between;align-items:baseline;gap:20px;margin:0 0 9px;font-size:25px;font-weight:500;line-height:1.3;display:flex}.education h3 span{color:#737c6a;letter-spacing:-.25px;white-space:nowrap;font-size:16px}.education p{color:#7b8175;margin:0;font-size:13px}.journey-timeline{margin:0;padding:0;list-style:none}.journey-timeline li{grid-template-columns:44px minmax(0,1fr);gap:17px;margin:0 0 26px;display:grid}.journey-timeline time{color:#878e80;font-variant-numeric:tabular-nums;padding-top:2px;font-size:12px;line-height:1.6}.journey-timeline h3{letter-spacing:-.15px;margin:0 0 8px;font-size:16px;font-weight:500;line-height:1.4}.journey-timeline p{color:#70796a;text-wrap:pretty;margin:0;font-size:13px;line-height:1.8}.journey-projects{margin-left:61px}.contact-profiles{margin:0;padding:10px 13px 13px;list-style:none;animation:.2s ease-out message-enter}.contact-profiles a{border-radius:10px;align-items:center;gap:17px;min-height:68px;padding:13px 16px;transition:background .2s;display:flex}.contact-profiles a:hover{background:#ffffff80}.contact-mark{color:#4c5247;flex-shrink:0;justify-content:center;width:25px;display:flex}.contact-mark img{display:block}.contact-copy{flex-direction:column;flex:1;gap:4px;display:flex}.contact-name{letter-spacing:-.15px;font-size:16px;font-weight:500}.contact-handle{color:#838a7a;font-size:12px}.contact-arrow{color:#8c9582;flex-shrink:0;transition:transform .25s,color .2s}.contact-profiles a:hover .contact-arrow{color:var(--ink);transform:translate(2px,-2px)}@keyframes menu-enter{0%{opacity:0;transform:translateY(-5px)scale(.988)}to{opacity:1;transform:translateY(0)scale(1)}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.portfolio-modal{background:#f7f8f5}.modal-scrim{background:#3132361a}}@media (max-width:850px){.modal-layer{padding:86px 28px 24px}.portfolio-modal{max-height:calc(100dvh - 110px)}}@media (max-width:600px){.modal-layer{padding:82px 12px max(16px, env(safe-area-inset-bottom))}.portfolio-modal{border-radius:17px;max-height:calc(100dvh - 98px)}.menu-bar{gap:5px;padding:10px 11px 10px 12px}.menu-sections{gap:2px}.menu-sections button{min-height:33px;padding:6px 11px;font-size:12px}.project-browser{min-height:0;display:block}.project-selector{border-bottom:1px solid #3f434111;border-right:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:13px 14px;display:grid}.project-selector button{border-radius:7px;justify-content:center;min-height:37px;margin:0;padding:9px 7px;font-size:12px}.project-selector svg{display:none}.project-detail{padding:24px 25px 26px}.project-detail-content{min-height:0}.project-detail h3{font-size:27px}.project-stack-line{margin-bottom:21px}.project-detail-copy{font-size:13px}.project-detail-actions{padding-top:24px}.journey-content{padding:25px}.education h3{gap:12px;font-size:22px}.education h3 span{font-size:14px}.journey-timeline li{grid-template-columns:35px minmax(0,1fr);gap:16px;margin-bottom:24px}.journey-projects{margin-left:51px}.contact-profiles{padding:8px 10px 11px}.contact-profiles a{padding:13px 14px}}@media (max-width:350px){.menu-sections button{padding-left:9px;padding-right:9px;font-size:11px}.project-detail,.journey-content{padding-left:22px;padding-right:22px}.education h3{font-size:19px}.project-selector{padding-left:10px;padding-right:10px}.project-selector button{font-size:11px}}@keyframes message-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes scrim-enter{0%{opacity:0}to{opacity:1}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.glass,.glass-tint{background:#fafbf7f2}}@media (max-width:850px){.portfolio-app{padding:22px 28px 24px}.chat-main{max-width:680px}}@media (max-width:600px){.portfolio-app{padding:20px 20px max(20px, env(safe-area-inset-bottom));min-height:430px}.topbar{min-height:44px}.identity{font-size:19px}.navigation{gap:18px}.nav-item{font-size:12px}.chat-main{padding-bottom:76px}.welcome{margin-bottom:29px}h1{letter-spacing:-1.15px;margin-bottom:12px;font-size:33px}.welcome-description{font-size:14px}.composer-shell{border-radius:30px;gap:6px;min-height:60px;padding:9px 10px 9px 8px}.composer-shell textarea{font-size:14px}.send-button{width:36px;height:36px}.icon-button.composer-leading{width:30px;height:36px}.character-count{display:none}.has-conversation .chat-main{padding:5px 0 0}.conversation{padding:22px 1px 30px}.message.user{padding-left:16px}.user-bubble{max-width:95%;padding:10px 14px;font-size:14px}.answer-content{font-size:14px}}@media (max-width:350px){.portfolio-app{padding-left:16px;padding-right:16px}.navigation{gap:13px}.nav-item{font-size:11px}h1{font-size:29px}.composer-shell textarea{font-size:12px}}@media (max-height:650px){.chat-main{padding-bottom:44px}.welcome{margin-bottom:26px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}}
