@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/build/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/build/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/build/assets/space-grotesk-latin-wght-normal-BhU9QXUp.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}.portfolio-page{--paper:#e8eae8;--paper-hi:#f4f6f3;--ink:#101214;--ink-2:#292c30;--muted:#62666d;--rule:#b9b9b4;--rule-dark:#f8f7f23d;--cobalt:#2859e8;--cobalt-dark:#163aa9;--green:#007c54;--amber:#a44900;--white:#f7f5ee;--sans:"Space Grotesk Variable", Arial, Helvetica, sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--gutter:clamp(1rem, 4.4vw, 4.25rem);--measure:72ch;min-width:0;min-height:100vh;color:var(--ink);background:var(--paper);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans);text-rendering:optimizelegibility;font-size:1rem;line-height:1.5;overflow-x:clip}.portfolio-page,.portfolio-page *,.portfolio-page :before,.portfolio-page :after{box-sizing:border-box}.portfolio-page ::selection{color:var(--white);background:var(--cobalt)}.portfolio-page a{color:inherit}.portfolio-page a:focus-visible,.portfolio-page button:focus-visible{outline:.1875rem solid var(--cobalt);outline-offset:.25rem}.portfolio-page .skip-link{z-index:100;color:var(--white);background:var(--cobalt);font:700 .75rem/1 var(--mono);padding:.75rem 1rem;transition:transform .16s;position:fixed;top:.5rem;left:.5rem;transform:translateY(-160%)}.portfolio-page .skip-link:focus,.portfolio-page .skip-link:focus-visible{transform:translateY(0)}.portfolio-page .portfolio-shell{width:min(100%,90rem);min-width:0;padding-inline:var(--gutter);margin:0 auto}.portfolio-page .pipeline{z-index:40;border-bottom:.0625rem solid var(--ink);-webkit-backdrop-filter:blur(.625rem);backdrop-filter:blur(.625rem);background:#eceae4f5;position:sticky;top:0}.portfolio-page .pipeline__inner{width:min(100%,90rem);min-width:0;padding-inline:var(--gutter);margin:0 auto}.portfolio-page .pipeline ol{grid-template-columns:repeat(5,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.portfolio-page .pipeline li{min-width:0}.portfolio-page .pipeline a{border-left:.0625rem solid var(--rule);min-width:0;min-height:3.625rem;color:var(--muted);font:700 clamp(.5625rem, .82vw, .6875rem)/1.2 var(--mono);overflow-wrap:anywhere;text-transform:uppercase;align-items:center;gap:.5rem;padding:.5625rem .75rem;text-decoration:none;transition:color .16s,background-color .16s;display:flex;position:relative}.portfolio-page .pipeline li:last-child a{border-right:.0625rem solid var(--rule)}.portfolio-page .pipeline a:after{content:"";background:0 0;height:.25rem;position:absolute;bottom:-.0625rem;left:0;right:0}.portfolio-page .pipeline a:hover{color:var(--ink);background:#f8f7f2b8}.portfolio-page .pipeline a[aria-current=step]{color:var(--white);background:var(--ink)}.portfolio-page .pipeline a[aria-current=step]:after{background:var(--cobalt)}.portfolio-page .pipeline__num{color:var(--cobalt);flex:none}.portfolio-page .pipeline a[aria-current=step] .pipeline__num{color:#7090ff}.portfolio-page .stage{border-bottom:.0625rem solid var(--ink);min-width:0;scroll-margin-top:4.75rem;position:relative}.portfolio-page .resume-intro{padding:clamp(1.75rem,5vw,4.5rem) 0 clamp(4rem,8vw,7.5rem)}.portfolio-page .resume-intro__layout{grid-template-columns:minmax(18.75rem,.82fr) minmax(0,1.18fr);align-items:stretch;gap:clamp(1.75rem,6vw,5.75rem);display:grid}.portfolio-page .profile-contact-card,.portfolio-page .profile-contact-actions,.portfolio-page .profile-contact-actions a{border:0}.portfolio-page .profile-contact-card:before{content:none}.portfolio-page .profile-contact-card--ink{color:var(--white);background:var(--ink)}.portfolio-page .profile-contact-card--cobalt{color:var(--white);background:var(--cobalt)}.portfolio-page .al-profile-card{isolation:isolate;min-width:0;min-height:38.75rem;color:var(--white);background:var(--ink);flex-direction:column;padding:0 1.125rem 0 0;display:flex;position:relative;overflow:hidden}.portfolio-page .al-profile-card:after{z-index:-1;pointer-events:none;content:"";background:linear-gradient(transparent, var(--cobalt), transparent);width:.0625rem;height:73%;position:absolute;top:13%;right:24%}.portfolio-page .al-profile-body{flex:1;justify-content:flex-end;align-items:center;min-height:31.25rem;padding:0 .25rem 0 0;display:flex;position:relative}.portfolio-page .al-profile-vertical{color:#f7f5ee9e;font:.625rem/1 var(--mono);letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;writing-mode:vertical-rl;flex:none;position:absolute;top:50%;left:.25rem;transform:translateY(-50%)rotate(180deg)}.portfolio-page .al-profile-core{flex-direction:column;align-items:flex-start;gap:1.125rem;width:min(78%,20.625rem);min-width:0;margin-right:8%;display:flex}.portfolio-page .al-profile-card h1{color:var(--white);letter-spacing:-.09em;overflow-wrap:anywhere;text-transform:uppercase;margin:0;font-size:clamp(2.25rem,3.3vw,3.25rem);font-weight:700;line-height:.86}.portfolio-page .al-profile-role{color:#f7f5eebd;max-width:22ch;margin:0;font-size:.75rem;line-height:1.55}.portfolio-page .al-profile-actions{width:min(100%,13rem);margin-top:1.125rem;display:grid}.portfolio-page .al-profile-actions a{min-width:0;min-height:2.875rem;color:var(--white);font:700 .75rem/1.2 var(--mono);letter-spacing:.06em;overflow-wrap:anywhere;text-transform:lowercase;justify-content:space-between;align-items:center;gap:.75rem;text-decoration:none;transition:padding .16s,background-color .16s,color .16s;display:flex}.portfolio-page .al-profile-actions a:hover,.portfolio-page .al-profile-actions a:focus-visible{color:var(--white);background:var(--cobalt);padding-inline:.5625rem}.portfolio-page .al-profile-action-label{align-items:center;gap:.55em;min-width:0;display:inline-flex}.portfolio-page .al-profile-icon{fill:currentColor;flex:0 0 1em;width:1em;height:1em;display:block}.portfolio-page .al-profile-registration{width:1.125rem;height:1.125rem;position:absolute;top:10%;right:9%}.portfolio-page .al-profile-registration:before,.portfolio-page .al-profile-registration:after{background:var(--cobalt);content:"";position:absolute}.portfolio-page .al-profile-registration:before{width:1.125rem;height:.0625rem;top:.5rem}.portfolio-page .al-profile-registration:after{width:.0625rem;height:1.125rem;left:.5rem}.portfolio-page .resume-content .resume-intro{padding-block:clamp(1.25rem,2.5vw,2.5rem)}.portfolio-page .resume-overview{grid-template-rows:repeat(2,auto);align-self:start;gap:clamp(1.25rem,2vw,1.75rem);min-width:0;display:grid}.portfolio-page .resume-overview__body{grid-template-columns:minmax(13rem,.72fr) minmax(20rem,1.28fr);align-items:start;gap:clamp(2rem,5vw,5.5rem);min-height:0;display:grid}.portfolio-page .resume-overview h3{font:700 .6875rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:0}.portfolio-page .resume-overview__profile{gap:1rem;display:grid}.portfolio-page .resume-overview__profile p{max-width:35ch;color:var(--ink-2);margin:0;font-size:clamp(.875rem,1.15vw,1.0625rem);line-height:1.5}.portfolio-page .resume-overview__capabilities{min-width:0}.portfolio-page .resume-overview__capabilities-heading{margin-bottom:.625rem}.portfolio-page .capability-list{gap:.25rem;display:grid}.portfolio-page .capability-row{opacity:0;min-width:0;transition:color .18s,background-color .18s,transform .18s,opacity .26s;transition-delay:calc(var(--row-index) * 55ms);background:0 0;padding:.5rem .625rem .625rem;transform:translateY(.5rem)}.portfolio-page .resume-overview--ready .capability-row{opacity:1;transform:translateY(0)}.portfolio-page .capability-row--active{color:var(--cobalt-dark);background:#2f5bea12;transform:translate(.25rem)}.portfolio-page .capability-row button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1rem minmax(6.5rem,auto) minmax(3rem,1fr);align-items:center;gap:.625rem;padding:0;display:grid}.portfolio-page .capability-row button>svg{stroke-width:1.6px;width:1rem;height:1rem}.portfolio-page .capability-row__label{font:700 .75rem/1.2 var(--mono);letter-spacing:.04em;text-transform:uppercase}.portfolio-page .capability-row__rail{background:#1012141f;height:.125rem;overflow:hidden}.portfolio-page .capability-row__rail span{background:var(--cobalt);transform-origin:0;width:100%;height:100%;transition:transform .32s cubic-bezier(.22,1,.36,1);transition-delay:calc(.1s + var(--row-index) * 55ms);display:block;transform:scaleX(0)}.portfolio-page .resume-overview--ready .capability-row__rail span{transform:scaleX(1)}.portfolio-page .capability-row p{color:var(--muted);font:.6875rem/1.35 var(--mono);overflow-wrap:anywhere;margin:.35rem 0 0 1.625rem}.portfolio-page .resume-overview__loadout{min-width:0}.portfolio-page .loadout-stage{grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem;min-width:0;display:grid}.portfolio-page .loadout-stage__column{gap:.625rem;min-width:0;margin:0;padding:0;list-style:none;display:grid}.portfolio-page .loadout-stage__column li{min-width:0;color:var(--ink);background:0 0;border-bottom:.125rem solid #0000;transition:color .16s,border-color .16s,opacity .16s,transform .16s}.portfolio-page .loadout-stage__column button{width:100%;min-height:3.125rem;color:inherit;font:700 .6875rem/1.2 var(--mono);text-align:center;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:.625rem;display:flex}.portfolio-page .loadout-stage__column button:hover,.portfolio-page .loadout-stage__column button:focus-visible,.portfolio-page .loadout-stage__column li.is-active{color:var(--cobalt-dark)}.portfolio-page .loadout-stage__column li.is-active{border-color:var(--cobalt);transform:translateY(-.125rem)}.portfolio-page .loadout-stage__column li.is-muted{opacity:.28}.portfolio-page .loadout-stage__figure{pointer-events:none;min-width:0;margin:0;display:none}.portfolio-page .loadout-stage__figure img{object-fit:contain;object-position:center bottom;width:100%;height:100%;display:block}.portfolio-page .experience-section{padding-block:clamp(3.5rem,7vw,7rem)}.portfolio-page .experience-section .matrix,.portfolio-page .experience-section .scroll-matrix{margin-top:0}.portfolio-page .hero-copy{flex-direction:column;justify-content:center;min-width:0;padding-block:1.5rem;display:flex}.portfolio-page .hero-copy h2{letter-spacing:-.09em;overflow-wrap:anywhere;text-transform:uppercase;text-wrap:balance;max-width:10ch;margin:0;font-size:clamp(3.5rem,7.3vw,8rem);font-weight:700;line-height:.81}.portfolio-page .hero-copy h2 em{color:var(--cobalt);font-style:normal}.portfolio-page .hero-intro{letter-spacing:-.02em;max-width:58ch;margin:clamp(2rem,5vw,4rem) 0 0;font-size:clamp(1.05rem,1.55vw,1.32rem);line-height:1.35}.portfolio-page .hero-meta{border-top:.0625rem solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));margin:2.125rem 0 0;display:grid}.portfolio-page .hero-meta div{border-bottom:.0625rem solid var(--rule);min-width:0;color:var(--muted);font:.6875rem/1.45 var(--mono);overflow-wrap:anywhere;padding:.875rem .75rem .75rem 0}.portfolio-page .hero-meta div:nth-child(odd){border-right:.0625rem solid var(--rule)}.portfolio-page .hero-meta div:nth-child(2n){padding-left:.75rem}.portfolio-page .hero-meta strong{color:var(--ink);display:block}.portfolio-page .stage-wrap{padding-block:clamp(4.75rem,10vw,9rem)}.portfolio-page .section-head{border-bottom:.125rem solid var(--ink);grid-template-columns:minmax(0,1fr) minmax(13.75rem,.42fr);align-items:end;gap:clamp(1.5rem,5vw,4.5rem);padding-bottom:1.5rem;display:grid}.portfolio-page .section-head h2{letter-spacing:-.09em;overflow-wrap:anywhere;text-transform:uppercase;text-wrap:balance;max-width:13ch;margin:0;font-size:clamp(3rem,6.8vw,7.4rem);font-weight:700;line-height:.83}.portfolio-page .section-head p{max-width:34ch;color:var(--ink-2);margin:0;font-size:1rem}.portfolio-page .stage-state{width:fit-content;color:var(--green);font:700 .6875rem/1.2 var(--mono);text-transform:uppercase;align-items:center;gap:.5rem;margin-top:.875rem;display:inline-flex}.portfolio-page .stage-state:before{content:"";background:currentColor;width:.5rem;height:.5rem}.portfolio-page .profile-layout{grid-template-columns:minmax(0,1.25fr) minmax(15.625rem,.75fr);gap:clamp(1.875rem,6vw,5.375rem);padding-top:clamp(2.25rem,6vw,4.875rem);display:grid}.portfolio-page .profile-copy p{max-width:var(--measure);letter-spacing:-.025em;margin:0 0 1.2em;font-size:clamp(1.1rem,1.7vw,1.48rem);line-height:1.42}.portfolio-page .source-file{border-top:.0625rem solid var(--ink);font:.6875rem/1.45 var(--mono);align-self:start}.portfolio-page .source-file dl{margin:0}.portfolio-page .source-file dl>div{border-bottom:.0625rem solid var(--rule);grid-template-columns:5.125rem minmax(0,1fr);gap:.75rem;padding:.75rem 0;display:grid}.portfolio-page .source-file dt{color:var(--muted)}.portfolio-page .source-file dd{overflow-wrap:anywhere;min-width:0;margin:0}.portfolio-page .source-file a,.portfolio-page .job__data a,.portfolio-page .project a{color:var(--cobalt-dark);text-underline-offset:.1875rem}.portfolio-page .skill-ledger{margin-top:clamp(2.375rem,6vw,5.125rem)}.portfolio-page .skill-row{border-bottom:.0625rem solid var(--rule);grid-template-columns:3.875rem minmax(9.375rem,.42fr) minmax(0,1fr);align-items:baseline;gap:1.125rem;min-width:0;padding:1.125rem 0 1rem;display:grid}.portfolio-page .skill-row:first-child{border-top:.0625rem solid var(--ink)}.portfolio-page .skill-row__id{color:var(--cobalt-dark);font:700 .6875rem/1 var(--mono)}.portfolio-page .skill-row h3,.portfolio-page .matrix h3,.portfolio-page .test-output h3,.portfolio-page .experience h3,.portfolio-page .projects h3,.portfolio-page .deployment h3,.portfolio-page .observe-grid h3{letter-spacing:-.055em;text-transform:uppercase}.portfolio-page .skill-row h3{letter-spacing:-.04em;margin:0;font-size:clamp(1.15rem,2.2vw,1.65rem)}.portfolio-page .skill-row p{min-width:0;color:var(--ink-2);margin:0}.portfolio-page .matrix{margin-top:clamp(3.25rem,7vw,6rem)}.portfolio-page .matrix h3,.portfolio-page .test-output h3,.portfolio-page .experience h3,.portfolio-page .projects h3,.portfolio-page .deployment h3,.portfolio-page .observe-grid h3{margin:0 0 1.125rem;font-size:clamp(1.55rem,3vw,2.7rem);font-weight:700;line-height:1}.portfolio-page table{border-collapse:collapse;table-layout:fixed;width:100%}.portfolio-page th,.portfolio-page td{border-bottom:.0625rem solid var(--rule);text-align:left;vertical-align:top;overflow-wrap:anywhere;padding:.8125rem .75rem}.portfolio-page th{color:var(--white);background:var(--ink);font:700 .625rem/1.3 var(--mono);text-transform:uppercase}.portfolio-page td{font-size:.875rem}.portfolio-page td:first-child{color:var(--cobalt-dark);font:700 .6875rem/1.35 var(--mono)}.portfolio-page .scroll-matrix{margin-top:clamp(3.25rem,7vw,6rem)}.portfolio-page .scroll-job{min-height:calc(100svh + var(--scene-scroll))}.portfolio-page .scroll-job__sticky{background:var(--paper);grid-template-rows:auto minmax(0,1fr);align-content:start;min-height:calc(100svh - 3.625rem);padding-block:clamp(1rem,2.5vw,2rem);display:grid;position:sticky;top:3.625rem}.portfolio-page .scroll-job__header{z-index:2;background:var(--paper);border-bottom:.0625rem solid var(--ink);position:relative}.portfolio-page .scroll-matrix__title{text-transform:uppercase;margin:0;padding-bottom:.75rem;font-size:clamp(1.55rem,3vw,2.7rem);line-height:1}.portfolio-page .scroll-job__matrix{color:var(--white);background:var(--ink);grid-template-columns:18fr 21fr 23fr 38fr;margin:0;display:grid}.portfolio-page .scroll-job__matrix>div{border-right:.0625rem solid var(--rule-dark);min-width:0;padding:.75rem}.portfolio-page .scroll-job__matrix>div:last-child{border-right:0}.portfolio-page .scroll-job__matrix dt{color:#f7f5ee94;font:700 .5625rem/1.2 var(--mono);text-transform:uppercase;margin-bottom:.45rem}.portfolio-page .scroll-job__matrix dd{overflow-wrap:anywhere;margin:0;font-size:.8125rem;line-height:1.35}.portfolio-page .scroll-job__matrix>div:first-child dd{color:#88a3ff;font:700 .75rem/1.35 var(--mono)}.portfolio-page .interface-window{border:.0625rem solid var(--ink);background:var(--ink);grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid;overflow:hidden;box-shadow:.75rem .75rem #10121421}.portfolio-page .interface-window__bar{border-bottom:.0625rem solid var(--rule-dark);color:#f7f5eea6;min-width:0;font:.75rem/1.35 var(--mono);overflow-wrap:anywhere;justify-content:space-between;gap:1rem;padding:.625rem .875rem;display:flex}.portfolio-page .interface-window__content{min-height:0}.portfolio-page .scroll-terminal{min-width:0;min-height:20rem;color:var(--white);background:var(--ink);font:.75rem/1.65 var(--mono);align-self:stretch;position:relative;overflow:hidden;box-shadow:.75rem .75rem #10121421}.portfolio-page .scroll-terminal:after{pointer-events:none;content:"";background:linear-gradient(#ffffff05 50%,#0000 50%) 0 0/100% .25rem;position:absolute;inset:0}.portfolio-page .scroll-terminal__output{padding:clamp(1rem,2.5vw,1.75rem)}.portfolio-page .scroll-terminal__command{opacity:0;margin:0 0 1rem;transition:opacity .24s,transform .36s cubic-bezier(.22,1,.36,1);transform:translateY(.5rem)}.portfolio-page .scroll-terminal__output ol{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.portfolio-page .scroll-terminal__output li{opacity:0;filter:blur(.25rem);grid-template-columns:2.8rem minmax(7.5rem,.42fr) minmax(0,1fr);gap:.75rem;transition:opacity .26s,filter .42s,transform .42s cubic-bezier(.22,1,.36,1);display:grid;transform:translateY(.75rem)}.portfolio-page .scroll-terminal__command.is-visible,.portfolio-page .scroll-terminal__output li.is-visible{opacity:1;filter:none;transform:translateY(0)}.portfolio-page .scroll-terminal__test{color:#f7f5eead;overflow-wrap:anywhere}.portfolio-page .scroll-terminal__cursor{background:#65e6b1;width:.5rem;height:.9rem;margin-top:1rem;animation:.9s step-end infinite terminal-cursor;display:inline-block}@keyframes terminal-cursor{50%{opacity:0}}.portfolio-page .scroll-experience{position:relative}.portfolio-page .scroll-experience__sticky{z-index:2;background:var(--paper);height:calc(100svh - 3.625rem);padding-block:clamp(1rem,2.5vw,2rem);position:sticky;top:3.625rem}.portfolio-page .scroll-experience__sticky .scroll-terminal{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid}.portfolio-page .scroll-terminal>.interface-window__content{grid-template-rows:minmax(0,1fr);min-height:0;display:grid}.portfolio-page .scroll-terminal__viewport{min-height:0;overflow-y:hidden}.portfolio-page .scroll-experience .scroll-terminal__output{will-change:transform;min-height:100%;padding-bottom:2rem;transition:transform .22s cubic-bezier(.77,0,.175,1)}.portfolio-page .scroll-terminal__history{position:relative}.portfolio-page .scroll-terminal__suite{margin-top:1.25rem}.portfolio-page .scroll-terminal__suite-summary{border-bottom:.0625rem solid var(--rule-dark);color:#f7f5eea3;grid-template-columns:3rem 3rem minmax(7rem,1fr) auto;gap:.75rem;margin:0;padding:.45rem 0;display:grid}.portfolio-page .scroll-terminal__suite-summary strong{color:var(--white)}.portfolio-page .scroll-terminal__suite-summary small{color:#f7f5ee80;font:inherit}.portfolio-page .scroll-terminal__suite header{border-top:.0625rem solid var(--rule-dark);border-bottom:.0625rem solid var(--rule-dark);opacity:0;filter:blur(.25rem);grid-template-columns:3rem minmax(7rem,.45fr) minmax(10rem,.75fr) minmax(8rem,1fr);gap:.75rem;padding:.55rem 0;transition:opacity .18s cubic-bezier(.23,1,.32,1),filter .18s cubic-bezier(.23,1,.32,1),transform .22s cubic-bezier(.23,1,.32,1);display:grid;transform:translateY(.75rem)}.portfolio-page .scroll-terminal__suite header.is-visible,.portfolio-page .scroll-terminal__done.is-visible{opacity:1;filter:none;transform:translateY(0)}.portfolio-page .scroll-terminal__suite strong{color:var(--white);overflow-wrap:anywhere}.portfolio-page .scroll-terminal__suite header>span:nth-child(3),.portfolio-page .scroll-terminal__suite small{color:#f7f5eea3;font:inherit;overflow-wrap:anywhere}.terminal-state-enter-active,.terminal-state-leave-active,.terminal-state-move,.terminal-line-enter-active,.terminal-line-leave-active{transition:opacity .18s cubic-bezier(.23,1,.32,1),filter .18s cubic-bezier(.23,1,.32,1),transform .22s cubic-bezier(.23,1,.32,1)}.terminal-state-enter-from,.terminal-state-leave-to,.terminal-line-enter-from,.terminal-line-leave-to{opacity:0;filter:blur(.125rem);transform:translateY(.5rem)}.terminal-state-leave-active{position:absolute;left:0;right:0}.portfolio-page .scroll-terminal__done{opacity:0;filter:blur(.25rem);gap:.75rem;margin:1.25rem 0 0;transition:opacity .18s cubic-bezier(.23,1,.32,1),filter .18s cubic-bezier(.23,1,.32,1),transform .22s cubic-bezier(.23,1,.32,1);display:flex;transform:translateY(.75rem)}.portfolio-page .scroll-experience__track{z-index:1;position:relative}.portfolio-page .scroll-experience__track i{pointer-events:none;height:6.5rem;display:block}.portfolio-page .scroll-experience__track:after{content:"";height:65svh;display:block}@media (width<=47.5rem){.portfolio-page .scroll-experience__sticky{height:calc(100svh - 5.5rem);padding-block:.75rem;top:5.5rem}.portfolio-page .scroll-terminal__suite-summary{grid-template-columns:2.7rem 2.7rem minmax(0,1fr);gap:.2rem .6rem}.portfolio-page .scroll-terminal__suite-summary small{grid-column:3}.portfolio-page .scroll-terminal__suite header{grid-template-columns:2.7rem minmax(0,1fr);gap:.2rem .6rem}.portfolio-page .scroll-terminal__suite header>span:nth-child(3),.portfolio-page .scroll-terminal__suite small{grid-column:2}.portfolio-page .scroll-experience__track i{height:5.5rem}.portfolio-page .scroll-experience__track:after{height:75svh}}.portfolio-page .test-output{grid-template-columns:minmax(14.375rem,.55fr) minmax(0,1.45fr);gap:clamp(1.75rem,5vw,4.5rem);margin-top:clamp(3.375rem,8vw,7rem);display:grid}.portfolio-page .test-output__intro p{max-width:34ch;color:var(--muted);margin:0}.portfolio-page .terminal{min-width:0;color:var(--white);background:var(--ink);border-left:.4375rem solid var(--cobalt);font:.75rem/1.65 var(--mono);box-shadow:.75rem .75rem #10121421}.portfolio-page .terminal__bar{border-bottom:.0625rem solid var(--rule-dark);color:#f7f5eea6;overflow-wrap:anywhere;justify-content:space-between;gap:1rem;padding:.625rem .875rem;display:flex}.portfolio-page .terminal pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;margin:0;padding:1.125rem}.portfolio-page .pass{color:#65e6b1}.portfolio-page .info{color:#88a3ff}.portfolio-page .warn{color:#ffbd76}.portfolio-page .experience{margin-top:clamp(3.25rem,8vw,7rem)}.portfolio-page .job{border-top:.0625rem solid var(--ink);grid-template-columns:minmax(12.5rem,.35fr) minmax(0,1fr);gap:clamp(1.625rem,5vw,4.375rem);min-width:0;padding:clamp(2.25rem,6vw,4.625rem) 0;display:grid}.portfolio-page .job:last-child{border-bottom:.0625rem solid var(--ink)}.portfolio-page .job__meta{align-self:start;min-width:0}.portfolio-page .job__index,.portfolio-page .project__id{color:var(--cobalt-dark);font:700 .6875rem/1 var(--mono)}.portfolio-page .job__meta h4{letter-spacing:-.06em;overflow-wrap:anywhere;margin:1rem 0 .375rem;font-size:clamp(1.5rem,3vw,2.7rem);font-weight:700;line-height:.94}.portfolio-page .job__role{color:var(--ink-2);margin:0 0 1.125rem;font-weight:700}.portfolio-page .job__data{color:var(--muted);font:.6875rem/1.55 var(--mono);overflow-wrap:anywhere;margin:0}.portfolio-page .job__data a{margin-top:.125rem;display:inline-block}.portfolio-page .outcomes{min-width:0;margin:0;padding:0;list-style:none}.portfolio-page .outcomes li{border-bottom:.0625rem solid var(--rule);min-width:0;padding:.75rem 0 .75rem 1.75rem;position:relative}.portfolio-page .outcomes li:first-child{border-top:.0625rem solid var(--rule)}.portfolio-page .outcomes li:before{color:var(--cobalt-dark);content:"+";font:700 .875rem/1.4 var(--mono);position:absolute;top:.75rem;left:.25rem}.portfolio-page .projects{margin-top:clamp(3rem,8vw,6.875rem)}.portfolio-page .project{border-top:.0625rem solid var(--ink);grid-template-columns:4.375rem minmax(11.25rem,.55fr) minmax(0,1fr);gap:1.125rem;min-width:0;padding:1.5rem 0;display:grid}.portfolio-page .project:last-child{border-bottom:.0625rem solid var(--ink)}.portfolio-page .project__id{line-height:1.3}.portfolio-page .project h4{letter-spacing:-.045em;overflow-wrap:anywhere;min-width:0;margin:0;font-size:clamp(1.25rem,2.6vw,2rem);font-weight:700;line-height:1}.portfolio-page .project p{min-width:0;max-width:66ch;margin:0}.portfolio-page .project a{overflow-wrap:anywhere;font-weight:700}.portfolio-page .deployment{grid-template-columns:minmax(13.75rem,.4fr) minmax(0,1fr);gap:clamp(1.875rem,7vw,6.25rem);margin-top:clamp(2.75rem,7vw,6.125rem);display:grid}.portfolio-page .deployment__copy p{max-width:38ch;color:var(--muted)}.portfolio-page .timeline{margin:0;padding:0;list-style:none;position:relative}.portfolio-page .timeline:before{content:"";background:var(--ink);width:.125rem;position:absolute;top:.5rem;bottom:.5rem;left:.4375rem}.portfolio-page .timeline li{min-width:0;padding:0 0 2.125rem 2.375rem;position:relative}.portfolio-page .timeline li:last-child{padding-bottom:0}.portfolio-page .timeline li:before{content:"";background:var(--cobalt);border:.1875rem solid var(--paper);outline:.0625rem solid var(--ink);width:1rem;height:1rem;position:absolute;top:.3125rem;left:0}.portfolio-page .timeline time{color:var(--cobalt-dark);font:700 .6875rem/1 var(--mono);overflow-wrap:anywhere}.portfolio-page .timeline strong{margin-top:.4375rem;font-size:1.13rem;display:block}.portfolio-page .timeline p{color:var(--ink-2);margin:.25rem 0 0}.portfolio-page .qualification{border-block:.0625rem solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:clamp(3.625rem,8vw,7rem);display:grid}.portfolio-page .qualification section{min-width:0;padding:clamp(1.5rem,4vw,3.25rem)}.portfolio-page .qualification section+section{border-left:.0625rem solid var(--ink)}.portfolio-page .qualification h3{letter-spacing:-.055em;text-transform:uppercase;margin:0 0 1.375rem;font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700}.portfolio-page .qualification p{margin:0 0 .5rem}.portfolio-page .qualification strong{display:block}.portfolio-page .observe-grid{grid-template-columns:minmax(0,1.15fr) minmax(16.25rem,.85fr);gap:clamp(2rem,7vw,6.25rem);margin-top:clamp(2.75rem,7vw,5.875rem);display:grid}.portfolio-page .log-stream{border-top:.0625rem solid var(--ink);font:.75rem/1.55 var(--mono);margin:0;padding:0;list-style:none}.portfolio-page .log-stream li{border-bottom:.0625rem solid var(--rule);grid-template-columns:5.5rem minmax(0,1fr);gap:1rem;min-width:0;padding:.8125rem 0;display:grid}.portfolio-page .log-stream li>span{overflow-wrap:anywhere;min-width:0}.portfolio-page .log-stream li>span:first-child{color:var(--green);font-weight:700}.portfolio-page .contact-block{min-width:0;color:var(--white);background:var(--cobalt);align-self:start;padding:clamp(1.5rem,4vw,2.875rem)}.portfolio-page .contact-block h3{max-width:10ch;margin-top:0;font-size:clamp(2rem,4vw,4.2rem);line-height:.9}.portfolio-page .contact-block p{max-width:32ch}.portfolio-page .contact-list{margin-top:1.75rem;display:grid}.portfolio-page .contact-list a{min-width:0;font:700 .75rem/1.35 var(--mono);overflow-wrap:anywhere;text-underline-offset:.25rem;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 0;display:flex}.portfolio-page .contact-list a:hover,.portfolio-page .contact-list a:focus-visible{color:var(--white);background:var(--ink)}.portfolio-page .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:.0625rem;height:.0625rem;margin:-.0625rem;padding:0;position:absolute;overflow:hidden}@media (width>=36rem) and (width<=63.9375rem){.portfolio-page .loadout-stage{grid-template-columns:minmax(5.75rem,.8fr) minmax(7rem,1fr) minmax(5.75rem,.8fr);align-items:stretch}.portfolio-page .loadout-stage__column{z-index:1;grid-row:1;grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:minmax(0,1fr);align-self:stretch}.portfolio-page .loadout-stage__column:first-of-type{grid-column:1}.portfolio-page .loadout-stage__column:last-of-type{grid-column:3}.portfolio-page .loadout-stage__column button{height:100%;min-height:3.75rem;padding-inline:.25rem}.portfolio-page .loadout-stage__figure{grid-area:1/2;min-height:0;display:block;position:relative;overflow:hidden}.portfolio-page .loadout-stage__figure img{object-fit:unset;width:auto;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}}@media (width>=64rem){.portfolio-page{--profile-width:clamp(18.75rem, 29vw, 26.25rem);padding-left:var(--profile-width)}.portfolio-page .al-profile-card{z-index:50;width:var(--profile-width);height:100svh;min-height:0;margin:0;position:fixed;top:0;bottom:0;left:0}.portfolio-page .al-profile-body{min-height:0}.portfolio-page #main-content{padding-top:2.5rem}.portfolio-page .resume-intro__layout{width:min(100%,76rem);padding-inline:var(--gutter);grid-template-columns:minmax(0,1fr);margin-inline:auto}.portfolio-page .resume-intro__layout>.hero-copy{grid-column:1}.portfolio-page .loadout-stage{grid-template-columns:minmax(5.75rem,.8fr) minmax(7rem,1fr) minmax(5.75rem,.8fr);align-items:stretch}.portfolio-page .loadout-stage__column{z-index:1;grid-row:1;grid-template-rows:repeat(6,minmax(0,1fr));grid-template-columns:minmax(0,1fr);align-self:stretch}.portfolio-page .loadout-stage__column:first-of-type{grid-column:1}.portfolio-page .loadout-stage__column:last-of-type{grid-column:3}.portfolio-page .loadout-stage__column button{height:100%;min-height:3.75rem;padding-inline:.25rem}.portfolio-page .loadout-stage__figure{grid-area:1/2;min-height:0;display:block;position:relative;overflow:hidden}.portfolio-page .loadout-stage__figure img{object-fit:unset;width:auto;max-width:none;height:100%;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}}@media (width>=85rem){.portfolio-page .resume-intro{align-items:center;min-height:calc(100svh - 2.5rem);display:flex}.portfolio-page .resume-intro__layout{width:100%}.portfolio-page .resume-overview{--sheet-height:clamp(38rem, 78svh, 62rem);gap:var(--gutter);grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(22rem,.95fr) minmax(28rem,1.05fr);align-items:stretch;width:100%}.portfolio-page .resume-overview__body{height:var(--sheet-height);grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);align-content:space-between;gap:clamp(2rem,4vh,3.25rem)}.portfolio-page .resume-overview__profile p{max-width:46ch}.portfolio-page .loadout-stage{height:var(--sheet-height);grid-template-columns:minmax(5.75rem,.72fr) minmax(9rem,1.3fr) minmax(5.75rem,.72fr);align-items:stretch;gap:clamp(.5rem,1vw,.875rem)}.portfolio-page .loadout-stage__column button{height:100%;min-height:clamp(3.25rem,7vh,4.25rem);padding-inline:.375rem}}@media (width<=63.9375rem){.portfolio-page .resume-intro__layout{gap:2.125rem}.portfolio-page .resume-overview__body{grid-template-columns:1fr}.portfolio-page .resume-overview__profile p{max-width:52ch}.portfolio-page .hero-copy h2{font-size:clamp(3.2rem,7.6vw,5.8rem)}.portfolio-page .section-head{grid-template-columns:1fr minmax(12.5rem,.46fr)}.portfolio-page .profile-layout{grid-template-columns:1fr}.portfolio-page .source-file{width:min(100%,38.75rem)}.portfolio-page .test-output{grid-template-columns:1fr}.portfolio-page .test-output__intro{grid-template-columns:minmax(11.25rem,.45fr) minmax(0,1fr);gap:1.75rem;display:grid}.portfolio-page .deployment{grid-template-columns:1fr}.portfolio-page .deployment__copy{grid-template-columns:minmax(11.25rem,.45fr) minmax(0,1fr);gap:1.75rem;display:grid}}@media (width<=47.5rem){.portfolio-page .stage{scroll-margin-top:6.5rem}.portfolio-page .pipeline ol{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-page .pipeline a{min-height:2.75rem;padding:.375rem .5rem}.portfolio-page .pipeline li:nth-child(-n+3) a{border-bottom:.0625rem solid var(--rule)}.portfolio-page .scroll-job__sticky{min-height:calc(100svh - 5.5rem);padding-block:.75rem;top:5.5rem}.portfolio-page .scroll-job__matrix{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-page .scroll-job__matrix>div:nth-child(2){border-right:0}.portfolio-page .scroll-job__matrix>div:nth-child(-n+2){border-bottom:.0625rem solid var(--rule-dark)}.portfolio-page .scroll-terminal{min-height:17rem;font-size:.6875rem;box-shadow:.4375rem .4375rem #10121421}.portfolio-page .scroll-terminal__output li{grid-template-columns:2.7rem minmax(0,1fr);gap:.15rem .6rem}.portfolio-page .scroll-terminal__output li>span:last-child{grid-column:2}.portfolio-page .resume-intro__layout{grid-template-columns:1fr}.portfolio-page .al-profile-card{min-height:35rem}.portfolio-page .hero-copy{min-height:32.5rem;padding-block:4.25rem}.portfolio-page .hero-copy h2{font-size:clamp(3.45rem,16vw,7rem)}.portfolio-page .section-head{grid-template-columns:1fr;align-items:start}.portfolio-page .section-head h2{font-size:clamp(3.1rem,14vw,6rem)}.portfolio-page .section-head p{max-width:52ch}.portfolio-page .skill-row{grid-template-columns:3rem minmax(0,1fr)}.portfolio-page .skill-row p{grid-column:2}.portfolio-page .job{grid-template-columns:1fr}.portfolio-page .project{grid-template-columns:3rem minmax(0,1fr)}.portfolio-page .project p{grid-column:2}.portfolio-page .observe-grid,.portfolio-page .qualification{grid-template-columns:1fr}.portfolio-page .qualification section+section{border-top:.0625rem solid var(--ink);border-left:0}}@media (width<=32.5rem){.portfolio-page .resume-overview__stack{grid-template-columns:1fr;gap:.75rem}.portfolio-page .capability-row button{grid-template-columns:1rem minmax(6rem,auto) minmax(2rem,1fr)}.portfolio-page .pipeline__inner{padding-inline:0}.portfolio-page .pipeline a{border-color:var(--rule);font-size:.5625rem}.portfolio-page .scroll-matrix__title{font-size:1.4rem}.portfolio-page .scroll-job__matrix>div{padding:.55rem}.portfolio-page .scroll-job__matrix dd{font-size:.6875rem}.portfolio-page .interface-window__bar{gap:.2rem;padding:.5rem .625rem;display:grid}.portfolio-page .scroll-terminal__output{padding:.75rem .625rem}.portfolio-page .resume-intro{padding-top:1rem}.portfolio-page .al-profile-card{min-height:32.5rem;padding:0 .875rem 0 0}.portfolio-page .al-profile-body{min-height:18.125rem;padding-block:0}.portfolio-page .al-profile-core{width:min(76%,16.875rem);margin-right:7%}.portfolio-page .al-profile-card h1{font-size:clamp(2rem,11vw,3rem)}.portfolio-page .al-profile-role{max-width:19ch;font-size:.6875rem}.portfolio-page .al-profile-actions a{min-height:2.75rem}.portfolio-page .al-profile-registration{right:7%}.portfolio-page .hero-copy{min-height:30rem}.portfolio-page .hero-meta{grid-template-columns:1fr}.portfolio-page .hero-meta div:nth-child(odd){border-right:0}.portfolio-page .hero-meta div:nth-child(2n){padding-left:0}.portfolio-page .stage-wrap{padding-block:4.5rem}.portfolio-page .test-output__intro,.portfolio-page .deployment__copy{grid-template-columns:1fr;gap:.5rem}.portfolio-page .terminal{font-size:.625rem;box-shadow:.4375rem .4375rem #10121421}.portfolio-page .terminal__bar{gap:.25rem;display:grid}.portfolio-page .terminal pre{padding:.875rem .75rem}.portfolio-page .log-stream li{grid-template-columns:4.5rem minmax(0,1fr);gap:.625rem;font-size:.625rem}.portfolio-page table,.portfolio-page thead,.portfolio-page tbody,.portfolio-page tr,.portfolio-page th,.portfolio-page td{display:block}.portfolio-page thead{clip:rect(0, 0, 0, 0);width:.0625rem;height:.0625rem;margin:-.0625rem;position:absolute;overflow:hidden}.portfolio-page tr{border-bottom:.0625rem solid var(--ink);padding:1rem 0}.portfolio-page td{border:0;grid-template-columns:5.5rem minmax(0,1fr);gap:.75rem;padding:.4375rem 0;display:grid}.portfolio-page td:before{color:var(--muted);content:attr(data-label);font:700 .5625rem/1.35 var(--mono);text-transform:uppercase}.portfolio-page td:first-child{color:var(--ink);font-family:var(--sans);font-size:.875rem}}@media (width>=36rem) and (width<=47.5rem){.portfolio-page .al-profile-body{justify-content:stretch}.portfolio-page .al-profile-core{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) minmax(13rem,.85fr);align-items:center;gap:1.25rem clamp(2rem,6vw,3.5rem);width:auto;max-width:none;margin-left:clamp(4rem,8vw,6rem);margin-right:5%;display:grid}.portfolio-page .al-profile-card h1,.portfolio-page .al-profile-role{grid-column:1}.portfolio-page .al-profile-actions{grid-area:1/2/span 2;align-self:center;width:100%;margin-top:0}}.portfolio-page .resume-content .resume-intro{padding-top:0}@media (width<=63.9375rem){.portfolio-page .resume-intro>.resume-intro__layout{width:100%;max-width:none;margin:0;padding-inline:0}}@media (width>=47.5625rem) and (width<=63.9375rem){.portfolio-page .resume-overview{padding-top:2.5rem}}@media (width<=63.9375rem){.portfolio-page .resume-overview{margin-right:var(--gutter)}}@media (width<=47.5rem){.portfolio-page .resume-overview{margin-inline:var(--gutter)}}.portfolio-page .resume-overview--character{isolation:isolate;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,5vw,4rem);position:relative;overflow:hidden}.portfolio-page .character-sheet__type{display:none}.portfolio-page .character-sheet__visual{min-height:clamp(35rem,110vw,48rem);position:relative}.portfolio-page .character-sheet__portrait{pointer-events:none;margin:0;position:absolute;inset:0}.portfolio-page .character-sheet__portrait img{object-fit:contain;object-position:center bottom;width:100%;height:100%;display:block}.portfolio-page .character-sheet__note{display:none}.portfolio-page .character-sheet__content{gap:clamp(2.5rem,6vw,5rem);min-width:0;display:grid}.portfolio-page .character-sheet__intro{gap:1.125rem;max-width:31rem;display:grid}.portfolio-page .character-sheet__intro>span{background:var(--cobalt);width:3.5rem;height:.1875rem;display:block}.portfolio-page .character-sheet__intro p,.portfolio-page .character-sheet__intro strong{margin:0}.portfolio-page .character-sheet__intro p{color:var(--ink-2);font-size:clamp(1rem,1.45vw,1.25rem);line-height:1.4}.portfolio-page .character-sheet__intro strong{font-size:clamp(1rem,1.3vw,1.125rem);line-height:1.35}.portfolio-page .character-sheet__strengths{gap:clamp(1.5rem,4vh,3rem);display:grid}.portfolio-page .character-sheet__strengths article{grid-template-columns:clamp(9rem,16vw,14rem) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,4vw,4rem);min-width:0;display:grid}.portfolio-page .character-sheet__strengths article>svg{width:2.75rem;height:2.75rem;color:var(--cobalt);stroke-width:1.4px;justify-self:center}.portfolio-page .character-sheet__strengths article>div{border-left:.0625rem solid #2859e852;min-width:0;padding-left:1.25rem}.portfolio-page .character-sheet__strengths h4{letter-spacing:-.055em;text-transform:uppercase;margin:0;font-size:clamp(1.5rem,2.25vw,2.4rem);font-weight:800;line-height:.95}.portfolio-page .character-sheet__strengths p{max-width:38ch;color:var(--muted);margin:.75rem 0 0;font-size:.8125rem;line-height:1.45}.portfolio-page .character-sheet__stack{grid-template-columns:clamp(9rem,16vw,14rem) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);min-width:0;padding-block:1.25rem;display:grid;container:tech-stack/inline-size}.portfolio-page .character-sheet__stack-copy{gap:.75rem;display:grid}.portfolio-page .character-sheet__stack strong{font:800 clamp(1.5rem, 2.25vw, 2.4rem) / .88 var(--sans);letter-spacing:-.055em;text-transform:uppercase;flex-direction:column;gap:.05em;display:flex}.portfolio-page .character-sheet__stack-copy p{color:var(--muted);margin:0;font-size:.75rem;line-height:1.45}.portfolio-page .character-sheet__stack ul{border-left:.0625rem solid #2859e852;grid-template-columns:repeat(14,minmax(0,1fr));align-items:center;gap:.75rem .5rem;min-width:0;margin:0;padding:0 0 0 clamp(1.25rem,3vw,2.5rem);font-size:.75rem;list-style:none;display:grid}.portfolio-page .character-sheet__stack li{grid-column:span 2;justify-content:center;align-items:center;display:flex}.portfolio-page .character-sheet__stack li img{object-fit:contain;flex:none;width:clamp(2.75rem,3.4vw,4rem);height:clamp(2.75rem,3.4vw,4rem);display:block}.portfolio-page .character-sheet__stack li:nth-child(8){grid-column:2/span 2}@container tech-stack (width>=90rem){.portfolio-page .character-sheet__stack ul{grid-template-columns:repeat(13,minmax(max-content,1fr))}.portfolio-page .character-sheet__stack li,.portfolio-page .character-sheet__stack li:nth-child(8){grid-column:auto}}@media (width>=48rem) and (width<=84.9375rem){.portfolio-page .character-sheet__strengths article,.portfolio-page .character-sheet__stack{grid-template-columns:10rem minmax(0,1fr);gap:1rem}.portfolio-page .character-sheet__stack ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem .5rem}.portfolio-page .character-sheet__stack li,.portfolio-page .character-sheet__stack li:nth-child(8){grid-column:auto}.portfolio-page .character-sheet__stack li:nth-child(13){grid-column:2/span 2}}@media (width>=85rem){.portfolio-page .resume-overview--character{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1.35fr) minmax(24rem,.8fr);align-items:stretch;gap:1.5rem clamp(2.5rem,4.5vw,5rem);width:100%;height:calc(100svh - 2.5rem);min-height:40rem}.portfolio-page .character-sheet__type{z-index:-1;color:#1012142b;font-family:var(--sans);letter-spacing:-.09em;text-transform:uppercase;pointer-events:none;font-weight:400;line-height:.72;display:block;position:absolute;inset:0 0 6.75rem;overflow:hidden}.portfolio-page .character-sheet__type span{white-space:nowrap;position:absolute}.portfolio-page .character-sheet__type-ai{font-size:clamp(13rem,20vw,25rem);top:0;left:0}.portfolio-page .character-sheet__type-backend{font-size:clamp(8rem,12vw,15rem);top:34%;left:0}.portfolio-page .character-sheet__type-web3{font-size:clamp(9rem,14vw,17rem);bottom:0;left:0}.portfolio-page .character-sheet__visual{grid-area:1/1;min-height:0}.portfolio-page .character-sheet__portrait{left:18%}.portfolio-page .character-sheet__portrait img{object-position:center bottom}.portfolio-page .character-sheet__note{max-width:12rem;color:var(--cobalt);font:700 .6875rem/1.25 var(--mono);text-transform:uppercase;margin:0;display:block;position:absolute}.portfolio-page .character-sheet__note:after{content:"";border-color:#2859e88c;width:4rem;height:2rem;position:absolute}.portfolio-page .character-sheet__note--ai{top:7%;right:4%}.portfolio-page .character-sheet__note--ai:after{border-bottom:.0625rem solid;border-right:.0625rem solid;top:1.75rem;right:2rem}.portfolio-page .character-sheet__note--scale{bottom:32%;right:0}.portfolio-page .character-sheet__note--scale:after{border-bottom:.0625rem solid;bottom:.5rem;right:100%}.portfolio-page .character-sheet__note--proof{bottom:20%;left:0}.portfolio-page .character-sheet__note--proof:after{border-bottom:.0625rem solid;border-right:.0625rem solid;bottom:.75rem;left:100%}.portfolio-page .character-sheet__content{grid-area:1/2;align-content:space-between;gap:2rem;padding-block:clamp(1.5rem,4vh,3rem)}.portfolio-page .character-sheet__strengths{gap:clamp(1.5rem,4vh,3rem)}.portfolio-page .character-sheet__strengths article{grid-template-columns:3.75rem minmax(0,1fr);gap:1.25rem}.portfolio-page .character-sheet__stack{grid-area:2/1/auto/-1}}@media (width<=47.5rem){.portfolio-page .character-sheet__visual{min-height:min(145vw,43rem)}.portfolio-page .character-sheet__strengths article{grid-template-columns:7.5rem minmax(0,1fr);gap:1rem}.portfolio-page .character-sheet__strengths article>svg{width:2rem;height:2rem}.portfolio-page .character-sheet__stack{grid-template-columns:7.5rem minmax(0,1fr);gap:1rem}.portfolio-page .character-sheet__stack strong{font-size:1.35rem}.portfolio-page .character-sheet__stack ul{grid-template-columns:repeat(3,minmax(0,1fr))}.portfolio-page .character-sheet__stack li,.portfolio-page .character-sheet__stack li:nth-child(8),.portfolio-page .character-sheet__stack li:nth-child(13){grid-column:auto}.portfolio-page .character-sheet__stack li img{width:2.5rem;height:2.5rem}}.portfolio-page .experience-section{padding-top:clamp(1.5rem,3vw,3rem);padding-bottom:0}.portfolio-page .selected-work-section{padding-block:0}.portfolio-page .selected-work{min-width:0}.portfolio-page .portfolio-project-intro{gap:.75rem;display:grid}.portfolio-page .portfolio-project-intro__section,.portfolio-page .portfolio-project-intro__title,.portfolio-page .portfolio-project-intro__description{margin:0}.portfolio-page .portfolio-project-intro__section{text-transform:uppercase;padding-bottom:.75rem;font-size:clamp(1.55rem,3vw,2.7rem);font-weight:400;line-height:1}.portfolio-page .portfolio-project-intro__title{color:var(--cobalt-dark);letter-spacing:-.06em;font-size:clamp(2.75rem,5vw,4.75rem);font-weight:700;line-height:.9}.portfolio-page .portfolio-project-intro--sectioned .portfolio-project-intro__title{margin-top:clamp(.75rem,2vh,1.5rem)}.portfolio-page .portfolio-project-intro__description{max-width:28ch;color:var(--ink-2);font-size:clamp(.9375rem,1.3vw,1.125rem);line-height:1.45}.portfolio-page .portfolio-project-intro__link{width:max-content;color:var(--ink);font:700 .75rem/1.2 var(--mono);-webkit-text-decoration-color:var(--cobalt);text-decoration-color:var(--cobalt);text-underline-offset:.35rem;margin-top:.25rem;text-decoration-thickness:.125rem}.portfolio-page .portfolio-project-intro__link:hover,.portfolio-page .portfolio-project-intro__link:focus-visible{color:var(--cobalt-dark)}.portfolio-page .work-walkthrough{min-height:300svh;position:relative}.portfolio-page .work-walkthrough__sticky{z-index:1;background:var(--paper);grid-template-columns:minmax(12rem,.58fr) minmax(0,1.42fr);align-items:center;gap:clamp(2rem,5vw,5rem);width:100%;height:100svh;padding-block:clamp(2rem,5vh,4rem);display:grid;position:sticky;top:0}.portfolio-page .work-walkthrough__copy{gap:clamp(2rem,5vh,4rem);min-width:0;display:grid}.portfolio-page .work-walkthrough__copy ol{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.portfolio-page .work-walkthrough__copy li{color:var(--muted);grid-template-columns:1.5rem minmax(0,1fr);align-items:center;gap:.75rem;transition:color .18s,opacity .18s,transform .22s cubic-bezier(.23,1,.32,1);display:grid}.portfolio-page .work-walkthrough__copy li span{transform-origin:0;background:currentColor;width:100%;height:.125rem;transition:transform .22s cubic-bezier(.23,1,.32,1);transform:scaleX(.35)}.portfolio-page .work-walkthrough__copy li.is-active{color:var(--ink);transform:translate(.25rem)}.portfolio-page .work-walkthrough__copy li.is-active span{color:var(--cobalt);transform:scaleX(1)}.portfolio-page .work-walkthrough__copy h4,.portfolio-page .work-walkthrough__description{margin:0}.portfolio-page .work-walkthrough__copy h4{font:700 clamp(.75rem, 1vw, .9375rem)/1.25 var(--mono)}.portfolio-page .work-walkthrough__description{max-width:30ch;min-height:7.5rem;color:var(--ink-2);font-size:clamp(1rem,1.6vw,1.375rem);line-height:1.5}.portfolio-page .work-walkthrough__window{justify-self:center;width:min(100%,118.222svh)}.portfolio-page .work-walkthrough__screens{aspect-ratio:14/9;background:0 0;width:100%;margin:0;position:relative;overflow:hidden}.portfolio-page .work-walkthrough__screens img{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity .26s,transform .36s cubic-bezier(.23,1,.32,1);display:block;position:absolute;inset:0;transform:translateY(.75rem)scale(.985)}.portfolio-page .work-walkthrough__screens img.is-active{z-index:1;opacity:1;transform:translateY(0)scale(1)}.portfolio-page .work-walkthrough__track{z-index:0;pointer-events:none;margin-top:-100svh;position:relative}.portfolio-page .work-walkthrough__track i,.portfolio-page .work-walkthrough__track:after{height:100svh;display:block}.portfolio-page .work-walkthrough__track:after{content:""}.portfolio-page .selected-work__static{gap:clamp(3rem,7vw,6rem);padding-bottom:clamp(4rem,8vw,8rem);display:grid}.portfolio-page .selected-work__static article{gap:1rem;display:grid}.portfolio-page .selected-work__static img{background:var(--ink);width:100%;height:auto;display:block}.portfolio-page .selected-work__static h4,.portfolio-page .selected-work__static p{margin:0}.portfolio-page .selected-work__static h4{font:700 .875rem/1.25 var(--mono)}.portfolio-page .selected-work__static p{max-width:42ch;color:var(--ink-2);line-height:1.5}@media (width<=47.5rem){.portfolio-page .work-walkthrough__sticky{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;align-content:center;gap:1.25rem;padding-block:1.25rem}.portfolio-page .work-walkthrough__window{grid-row:2;width:min(100%,74.667svh)}.portfolio-page .work-walkthrough__copy{grid-row:1;gap:.875rem}.portfolio-page .work-walkthrough__intro{gap:.45rem}.portfolio-page .work-walkthrough__intro h3{margin-top:.25rem;font-size:clamp(2.25rem,12vw,3.5rem)}.portfolio-page .work-walkthrough__intro p{font-size:.8125rem}.portfolio-page .work-walkthrough__copy ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem .75rem}.portfolio-page .work-walkthrough__copy li{display:block}.portfolio-page .work-walkthrough__copy li span{margin-bottom:.5rem;display:block}.portfolio-page .work-walkthrough__copy li.is-active{transform:none}.portfolio-page .work-walkthrough__copy h4{overflow-wrap:anywhere;font-size:.625rem}.portfolio-page .work-walkthrough__description{max-width:34ch;min-height:4.5rem;font-size:.875rem}}.portfolio-page .skills-atlas-section{padding-block:clamp(6rem,11vw,10rem)}.portfolio-page .skills-atlas{min-width:0;padding-top:clamp(3rem,6vw,5rem)}.portfolio-page .skills-atlas__header{max-width:32rem;margin-bottom:clamp(3rem,6vw,5rem)}.portfolio-page .skills-atlas__map{gap:0;padding-block:.75rem;display:grid;position:relative}.portfolio-page .skills-atlas__map:before{content:"";background:#2859e86b;width:.0625rem;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.portfolio-page .skills-atlas__row{grid-template-columns:minmax(0,1fr) 8rem minmax(0,1fr);align-items:center;min-width:0;display:grid}.portfolio-page .skills-atlas__row+.skills-atlas__row{margin-top:-5.5rem}.portfolio-page .skills-atlas__card{min-width:0;min-height:11rem;color:var(--ink);border:.0625rem solid var(--rule);background:#f4f6f3b8;grid-template-columns:3.5rem minmax(0,1fr) 1rem;align-items:start;gap:1rem;padding:clamp(1.125rem,2.5vw,1.75rem);text-decoration:none;transition:color .18s,border-color .18s,transform .22s cubic-bezier(.23,1,.32,1);display:grid;position:relative}.portfolio-page .skills-atlas__card:after{content:"";background:#2859e880;width:4rem;height:.0625rem;position:absolute;top:50%}.portfolio-page .skills-atlas__row--left .skills-atlas__card{grid-column:1}.portfolio-page .skills-atlas__row--left .skills-atlas__card:after{left:100%}.portfolio-page .skills-atlas__row--right .skills-atlas__card{grid-column:3}.portfolio-page .skills-atlas__row--right .skills-atlas__card:after{right:100%}.portfolio-page .skills-atlas__card:hover,.portfolio-page .skills-atlas__card:focus-visible{color:var(--cobalt-dark);border-color:var(--cobalt);transform:translateY(-.1875rem)}.portfolio-page .skills-atlas__icon{border:.0625rem solid var(--rule);place-items:center;width:3.5rem;height:3.5rem;display:grid}.portfolio-page .skills-atlas__icon svg{stroke-width:1.5px;width:1.75rem;height:1.75rem}.portfolio-page .skills-atlas__copy{gap:.45rem;min-width:0;display:grid}.portfolio-page .skills-atlas__copy strong{font:700 clamp(.875rem, 1.35vw, 1.125rem)/1.25 var(--mono)}.portfolio-page .skills-atlas__repository{color:var(--cobalt-dark);font:.6875rem/1.35 var(--mono);overflow-wrap:anywhere}.portfolio-page .skills-atlas__description{max-width:42ch;color:var(--muted);font-size:.8125rem;line-height:1.45}.portfolio-page .skills-atlas__arrow{color:var(--cobalt);font:700 .875rem/1 var(--mono)}.portfolio-page .skills-atlas__category{z-index:1;color:var(--cobalt-dark);background:var(--paper);font:700 .625rem/1 var(--mono);text-transform:uppercase;grid-area:1/2;justify-self:center;padding:.375rem .625rem}@media (width<=47.5rem){.portfolio-page .skills-atlas__header{gap:.45rem}.portfolio-page .skills-atlas__map{gap:1.25rem}.portfolio-page .skills-atlas__map:before{left:1rem}.portfolio-page .skills-atlas__row+.skills-atlas__row{margin-top:0}.portfolio-page .skills-atlas__row{grid-template-columns:2rem minmax(0,1fr)}.portfolio-page .skills-atlas__row--left .skills-atlas__card,.portfolio-page .skills-atlas__row--right .skills-atlas__card{grid-column:2}.portfolio-page .skills-atlas__row--left .skills-atlas__card:after,.portfolio-page .skills-atlas__row--right .skills-atlas__card:after{width:1rem;left:auto;right:100%}.portfolio-page .skills-atlas__category{display:none}.portfolio-page .skills-atlas__card{grid-template-columns:2.75rem minmax(0,1fr) 1rem;gap:.75rem;min-height:0}.portfolio-page .skills-atlas__icon{width:2.75rem;height:2.75rem}.portfolio-page .skills-atlas__icon svg{width:1.375rem;height:1.375rem}}.portfolio-page .scroll-experience__sticky{height:100svh;top:0}@media (prefers-reduced-motion:reduce){.portfolio-page .capability-row{opacity:1;transform:none}.portfolio-page .capability-row__rail span{transform:scaleX(1)}.portfolio-page .scroll-job{min-height:auto}.portfolio-page .scroll-job__sticky{min-height:auto;margin-bottom:2rem;position:relative;top:auto}.portfolio-page *,.portfolio-page :before,.portfolio-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.portfolio-page .pipeline a[aria-current=step],.portfolio-page .contact-block,.portfolio-page .al-profile-card{border:.125rem solid canvastext}.portfolio-page .stage-state:before,.portfolio-page .timeline li:before{forced-color-adjust:none}}@media print{@page{size:A4;margin:12mm}.portfolio-page{color:#101214;background:#fff;min-width:0;padding-left:0;font-size:10pt}.portfolio-page .pipeline,.portfolio-page .skip-link{display:none}.portfolio-page .scroll-job{min-height:auto}.portfolio-page .scroll-job__sticky{break-inside:avoid;min-height:auto;position:relative;top:auto}.portfolio-page .portfolio-shell{width:100%;padding:0}.portfolio-page .resume-intro__layout{grid-template-columns:1fr 1fr;gap:1.25rem}.portfolio-page .al-profile-card{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;width:auto;height:auto;min-height:25.625rem;position:relative;inset:auto}.portfolio-page .al-profile-body{min-height:21.875rem}.portfolio-page .hero-copy{min-height:auto}.portfolio-page .hero-copy h2,.portfolio-page .section-head h2{font-size:34pt}.portfolio-page .stage-wrap{padding-block:2.625rem}.portfolio-page .job,.portfolio-page .project,.portfolio-page .terminal,.portfolio-page .qualification,.portfolio-page .contact-block{break-inside:avoid}.portfolio-page .terminal,.portfolio-page .contact-block{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
