.resume-route{--void:#d8d0c3;--ink:#28231f;--quiet-ink:#5b5147;--line:#2f292338;--slab-white:#fff;--axis-x:#9f7470;--axis-y:#79916f;--axis-z:#6e899f;background:var(--void);min-height:100dvh;color:var(--ink);font-family:Georgia,Times New Roman,serif}.resume-route,.resume-route *{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0}.resume-route a{color:inherit}.portfolio{isolation:isolate;background:var(--void);width:100%;height:100dvh;min-height:34rem;position:relative;overflow:hidden}.portfolio-stage{isolation:isolate;background:var(--void);width:100%;height:100dvh;min-height:34rem;display:grid;position:relative;overflow:hidden}.scene{z-index:1;pointer-events:none;touch-action:none;inset:0;position:absolute!important}.scene canvas{display:block;width:100%!important;height:100%!important}.scene-shell{z-index:1;pointer-events:none;position:absolute;inset:0}.dither-backdrop{z-index:0;pointer-events:none;position:absolute;inset:-3%;overflow:hidden;transform:scale(1.06)}.dither-backdrop-shader,.dither-backdrop-shader canvas{display:block;width:100%!important;height:100%!important}.dither-backdrop-shader{filter:contrast(1.12);opacity:.76;inset:0;position:absolute!important}.dither-backdrop-veil{background:#d8d0c31f;position:absolute;inset:0}.dither-credit{z-index:3;letter-spacing:.01em;font-size:.55rem;font-style:italic;text-decoration:none;position:absolute;top:.75rem;right:1rem;color:#28231f6b!important}.resume-vector-face,.resume-vector-frame{width:2448px;height:3168px;display:block}.resume-vector-frame{perspective:1400px;transform-style:preserve-3d;background:0 0;position:relative;overflow:hidden}.resume-highlights,.resume-project-markers{z-index:1;pointer-events:none;width:2448px;height:3168px;display:block;position:absolute;inset:0;overflow:visible}.document-detail{z-index:2;pointer-events:none;width:min(15.25rem,19vw);position:absolute;top:24%}.document-detail--skills{left:clamp(1.5rem,5vw,5.5rem)}.document-detail--experience{top:27%;right:clamp(1.5rem,4.5vw,5.5rem)}.coordinate-guide{z-index:3;opacity:.62;pointer-events:none;width:min(6rem,12vw);position:absolute;top:clamp(1.2rem,4vh,3rem);left:clamp(1.2rem,3.2vw,4rem)}.coordinate-guide svg{width:100%;height:auto;display:block;overflow:visible}.coordinate-guide .axis,.coordinate-guide .axis-head{fill:none;stroke-width:1.15px;stroke-linecap:round;stroke-linejoin:round}.coordinate-guide .axis-x{fill:var(--axis-x);stroke:var(--axis-x)}.coordinate-guide .axis-y{fill:var(--axis-y);stroke:var(--axis-y)}.coordinate-guide .axis-z{fill:var(--axis-z);stroke:var(--axis-z)}.coordinate-guide .axis-label{font-family:Georgia,Times New Roman,serif;font-size:12px;font-style:italic}.coordinate-guide .axis-origin{fill:#2f2923a8}.detail-card{background:#ffffff3d;border:1px solid #2f292333;margin:0;padding:.42rem}.detail-card-image{aspect-ratio:.82;isolation:isolate;background:#f7f4ed;position:relative;overflow:hidden}.detail-card-noise,.detail-card-dither{position:absolute;inset:0}.detail-card-noise{z-index:1}.detail-card-dither{z-index:2}.detail-card-shader,.detail-card-shader canvas{display:block;width:100%!important;height:100%!important}.detail-card-shader{inset:0;position:absolute!important}.detail-card figcaption{color:var(--quiet-ink);padding:.65rem .2rem .22rem}.detail-card figcaption p{margin:0;font-size:.73rem;font-style:italic;line-height:1.2}.technical-card-grid{z-index:2;pointer-events:auto;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,4fr) minmax(0,3fr);gap:clamp(.45rem,1vh,.7rem);width:min(36vw,34rem);max-height:35rem;display:grid;position:absolute;top:clamp(4.8rem,10vh,7rem);bottom:7.25rem;left:clamp(1.6rem,3.4vw,4.25rem)}.technical-card{min-height:0;color:var(--ink);background:#fffffff0;border:1px solid #2f292340;flex-direction:column;margin:0;padding:.38rem;text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:0 .75rem 1.8rem #362f2812}.technical-card-grid>div{min-height:0}.technical-card-grid>div>.technical-card{height:100%}.technical-card--friends{grid-area:1/2}.technical-image{object-fit:contain;flex:none;width:100%;height:auto;display:block}.technical-card-caption{padding:.52rem .12rem .1rem}.technical-card h2,.technical-card p{margin:0}.technical-card-caption h2,.technical-card-heading h2{color:var(--ink);font-size:.76rem;font-weight:600;line-height:1.12}.technical-card-caption p,.technical-card-description{color:#332d27;font-size:.66rem;font-style:italic;line-height:1.22;margin-top:.16rem!important}.technical-card--duolingo .technical-card-caption h2 span{letter-spacing:-.035em;font-size:1.22rem}.technical-card-heading{justify-content:space-between;align-items:baseline;gap:.5rem;padding:.05rem .1rem .45rem;display:flex}.technical-card-heading a,.technical-card-heading span{color:#332d27;font-size:.61rem;font-style:italic;text-decoration:none}.technical-card-heading a:hover,.technical-card-heading a:focus-visible{text-underline-offset:.2em;text-decoration:underline}.training-plot-frame{flex:1;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.35rem;min-height:0;display:grid;position:relative}.training-plot-frame svg{width:100%;height:100%;min-height:4.6rem;overflow:visible}.training-plot-grid{fill:none;stroke:#2f292321;stroke-width:.8px}.training-plot-line{fill:none;stroke:#28231f;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.training-plot-dot{fill:#fff;stroke:#28231f;stroke-width:1.35px}.training-plot-frame p{color:var(--ink);text-align:right;gap:.1rem;padding-bottom:.15rem;font-size:.64rem;line-height:1;display:grid}.training-plot-frame p strong{letter-spacing:-.035em;font-size:.95rem;font-weight:600}.training-plot-frame p span{color:#332d27;width:3.9rem;font-size:.54rem;font-style:italic;line-height:1.05}.training-plot-axis{color:#5b5147;justify-content:space-between;gap:.75rem;margin:.08rem 0 0;font-size:.49rem;font-style:italic;line-height:1;display:flex}.training-series-picker{flex-wrap:wrap;gap:.2rem;padding-top:.4rem;display:flex}.training-series-picker button{color:#332d27;cursor:pointer;background:0 0;border:1px solid #2f29232e;border-radius:0;padding:.16rem .24rem;font:italic .52rem/1 Georgia,Times New Roman,serif}.training-series-picker button[aria-pressed=true],.training-series-picker button:hover{border-color:var(--ink);background:var(--ink);color:#fff}.training-series-picker button:focus-visible,.technical-card--calendar:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.workout-calendar{flex:1;min-height:0;padding:.2rem .08rem 0}.workout-calendar>p{color:var(--ink);margin:0 0 .36rem;font-size:.66rem;font-style:italic}.workout-calendar-weekdays,.workout-calendar-days{text-align:center;grid-template-columns:repeat(7,1fr);gap:.16rem;display:grid}.workout-calendar-weekdays{color:#5b5147;margin-bottom:.18rem;font-size:.49rem}.workout-calendar-days span{color:#332d27;place-items:center;min-height:1.2rem;font-size:.57rem;display:grid}.workout-calendar-days .is-training{color:#fff;background:#28231f}.technical-card--calendar:hover{border-color:var(--ink);background:#fff}.project-card-stack{z-index:2;pointer-events:auto;grid-template-rows:minmax(15rem,2.2fr) repeat(2,minmax(6rem,1fr));gap:clamp(.55rem,1.2vh,.9rem);width:min(31vw,23rem);max-height:31rem;display:grid;position:absolute;top:clamp(4.8rem,10vh,7rem);bottom:7.25rem;left:clamp(1.6rem,3.4vw,4.25rem)}.project-card{background:#efe9dff0;border:1px solid #2f292340;grid-template-rows:minmax(0,1fr) auto;min-height:0;margin:0;padding:.36rem;display:grid;overflow:hidden}.project-card-image{background:#e6dfd3;min-height:0;position:relative;overflow:hidden}.project-card-shader,.project-card-shader canvas{display:block;width:100%!important;height:100%!important}.project-card-shader{inset:0;position:absolute!important}.project-card-image--embed{background:#fff}.project-card-image--embed iframe{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fff;border:0;width:100%;height:100%;display:block}.project-card figcaption{color:var(--ink);justify-content:space-between;align-items:baseline;gap:.8rem;padding:.5rem .14rem .16rem;line-height:1.1;display:flex}.project-card figcaption strong{max-width:62%;font-size:.72rem;font-weight:600}.project-card figcaption span{color:var(--quiet-ink);text-align:right;font-size:.61rem;font-style:italic}.stage-dock{z-index:4;background:#ebe5dbf5;border-top:1px solid #2f292338;position:absolute;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -1.4rem 4rem #362f2814}.stage-dock-bar{width:min(100% - 4rem,92rem);height:5.75rem;color:var(--quiet-ink);letter-spacing:.01em;justify-content:space-between;align-items:center;gap:2rem;margin:0 auto;font-size:.78rem;font-style:italic;line-height:1.2;display:flex}.stage-dock p{margin:0}.stage-dock nav{align-items:center;gap:.7rem;display:flex}.stage-dock nav span{color:#28231f94;text-align:center;letter-spacing:.12em;min-width:3.6rem;font-size:.68rem;font-style:normal}.stage-dock button{width:2.35rem;height:2.35rem;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #2f292347;border-radius:50%;place-items:center;padding:0;transition:background-color .18s,color .18s,opacity .18s;display:grid}.stage-dock button svg{fill:none;stroke:currentColor;stroke-width:1.35px;stroke-linecap:round;stroke-linejoin:round;width:1rem;height:1rem}.stage-dock button:hover:not(:disabled){background:var(--ink);color:#f5f1e9}.stage-dock button:disabled{opacity:.25;cursor:default}.stage-dock button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.resume-loading{background:var(--void);width:100%;height:100dvh}.mobile-resume{color:#f3eee5;background:#181817;min-height:100dvh;padding:1rem}.mobile-resume header{border-bottom:1px solid #f3eee547;min-height:44svh;padding:1.1rem .35rem 2.2rem;position:relative}.mobile-resume header p{color:#f3eee599;margin:0;font-size:.68rem;font-style:italic}.mobile-resume h1{letter-spacing:-.075em;margin:0;font-size:clamp(3.6rem,18vw,6.2rem);font-weight:400;line-height:.78;position:absolute;bottom:1.85rem;left:.35rem;right:.35rem}.mobile-resume header a{color:inherit;text-underline-offset:.25em;font-size:.68rem;position:absolute;top:1.1rem;right:.35rem}.mobile-resume-document{background:#fff;border-radius:.25rem;margin:1rem 0 0;overflow:hidden}.mobile-resume-document img{width:100%;height:auto;display:block}.mobile-technical-grid{grid-template-columns:minmax(0,4fr) minmax(0,3fr);gap:.72rem;margin:1.25rem 0 0;display:grid}.mobile-technical-grid .technical-card{min-height:14rem}.mobile-technical-grid .technical-card--plot{min-height:16rem}.mobile-technical-grid .technical-card--calendar{min-height:8rem}@media (min-width:48rem) and (max-width:64rem){.document-detail{width:min(13.5rem,21vw)}.document-detail--skills{left:2rem}.document-detail--experience{right:2rem}.stage-dock-bar{width:calc(100% - 3rem)}.technical-card-grid{width:35vw;left:1.5rem}.training-series-picker{gap:.12rem}.project-card-stack{width:32vw;left:1.5rem}.project-card figcaption{display:block}.project-card figcaption strong,.project-card figcaption span{max-width:none;display:block}.project-card figcaption span{text-align:left;margin-top:.18rem}}@media (min-width:48rem) and (max-height:40rem){.technical-card-grid{width:min(29vw,26rem);top:4.8rem}.technical-card-caption{padding-top:.36rem}.training-series-picker{padding-top:.24rem}}@media (prefers-reduced-motion:reduce){.stage-dock button{transition:none}}.webgl-fallback{z-index:2;background:var(--void);min-height:100%;color:var(--quiet-ink);text-align:center;place-items:center;padding:2rem;font-size:.73rem;font-style:italic;display:grid;position:absolute;inset:0}.webgl-fallback p{width:min(26rem,100%);margin:0;line-height:1.5}.gym-route{--void:#d8d0c3;--ink:#28231f;--quiet-ink:#5b5147;--line:#2f292338;--slab-white:#fff;background:var(--void);min-height:100dvh;color:var(--ink);padding:clamp(1rem,3vw,3rem);font-family:Georgia,Times New Roman,serif}.gym-tracker{background:#fffffff0;border:1px solid #2f292340;width:min(100%,68rem);margin:0 auto;padding:clamp(1.15rem,3vw,2.6rem);box-shadow:0 1.25rem 3rem #362f281a}.gym-tracker-header,.gym-history-heading,.gym-unlock>div{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.gym-tracker-header p,.gym-tracker h1,.gym-tracker h2,.gym-tracker p{margin:0}.gym-tracker-header p{color:var(--quiet-ink);font-size:.73rem;font-style:italic}.gym-tracker h1{letter-spacing:-.045em;margin-top:.3rem;font-size:clamp(2.4rem,7vw,5.75rem);font-weight:400;line-height:.85}.gym-back-link,.gym-history-heading button{color:var(--ink);text-underline-offset:.25em;cursor:pointer;background:0 0;border:0;flex:none;font:italic .73rem/1.2 Georgia,Times New Roman,serif;text-decoration:underline}.gym-status{color:var(--quiet-ink);font-size:.78rem;font-style:italic;margin-top:2rem!important}.gym-setup,.gym-unlock{background:#fbfbf9;border:1px solid #2f292340;width:min(34rem,100%);margin:clamp(2.4rem,8vh,6rem) auto 0;padding:1.1rem}.gym-setup h2,.gym-unlock label,.gym-form-heading h2,.gym-history h2{font-size:.9rem;font-weight:600}.gym-setup p,.gym-setup>code,.gym-form-heading p,.gym-empty{color:var(--quiet-ink);font-size:.73rem;font-style:italic;line-height:1.35;margin-top:.45rem!important}.gym-setup>code{overflow-wrap:anywhere;display:block}.gym-unlock label{margin-bottom:.5rem;display:block}.gym-unlock input,.gym-entry-form input{width:100%;color:var(--ink);background:#fff;border:1px solid #2f292352;border-radius:0;font:.9rem/1.2 Georgia,Times New Roman,serif}.gym-unlock input{padding:.6rem .7rem}.gym-unlock button,.gym-entry-form>button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;border-radius:0;min-height:2.45rem;padding:.5rem .85rem;font:italic .76rem/1 Georgia,Times New Roman,serif}.gym-unlock button:hover,.gym-entry-form>button:hover:not(:disabled){color:var(--ink);background:#fff}.gym-unlock input:focus-visible,.gym-entry-form input:focus-visible,.gym-unlock button:focus-visible,.gym-entry-form button:focus-visible,.gym-back-link:focus-visible,.gym-history-heading button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.gym-dashboard{grid-template-columns:minmax(0,1.1fr) minmax(16rem,.9fr);gap:clamp(2rem,6vw,5rem);margin-top:clamp(2.4rem,7vw,5rem);display:grid}.gym-entry-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.gym-form-heading,.gym-entry-form .gym-exercise-field,.gym-entry-form>button,.gym-entry-form .gym-status{grid-column:1/-1}.gym-entry-form label{color:var(--quiet-ink);gap:.34rem;font-size:.67rem;font-style:italic;display:grid}.gym-entry-form input{min-height:2.5rem;padding:.45rem .55rem}.gym-entry-form>button{justify-self:start}.gym-entry-form .gym-status{margin-top:0!important}.gym-entry-form>button:disabled{cursor:wait;opacity:.7}.gym-history{min-width:0;padding-top:.1rem}.gym-history-heading{border-bottom:1px solid #2f292338;padding-bottom:.72rem}.gym-history ol{margin:0;padding:0;list-style:none}.gym-history li{border-bottom:1px solid #2f292324;grid-template-columns:3.3rem minmax(0,1fr);gap:.15rem .7rem;padding:.78rem 0;display:grid}.gym-history time,.gym-history span{color:var(--quiet-ink);font-size:.67rem;font-style:italic}.gym-history strong{font-size:.8rem;font-weight:600}.gym-history span{grid-column:2}@media (max-width:48rem){.gym-route{padding:.7rem}.gym-tracker{padding:1.15rem}.gym-tracker-header{flex-direction:column;align-items:flex-start}.gym-back-link{margin-top:.3rem}.gym-tracker h1{font-size:clamp(2.6rem,16vw,4.5rem)}.gym-dashboard{grid-template-columns:1fr}.gym-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.gym-unlock>div{flex-direction:column;align-items:stretch}.gym-unlock button{width:100%}}.webgl-fallback a{text-underline-offset:.2em}
