:root{--ink:#171717;--paper:#f4f2ec;--steel-blue:#566f7f;--brick-red:#c84545;--lively-lime:#c9dd5c;--contact-purple:#7651a8;--loader-logo-final-filter:brightness(0);--loader-target-x:calc(-50vw + clamp(24px, 5vw, 76px) + 38px);--loader-target-y:calc(-50vh + clamp(24px, 5vw, 76px) + 38px)}html[data-theme=dark]{--loader-logo-final-filter:brightness(1)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-geist-sans), Arial, sans-serif}button{color:inherit;font:inherit}.page-loader{z-index:9999;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.loader-half{z-index:1;background:var(--ink);will-change:transform;height:50%;animation-duration:1.15s;animation-timing-function:cubic-bezier(.76,0,.24,1);animation-delay:1.65s;animation-fill-mode:forwards;position:absolute;left:0;right:0}.loader-top{animation-name:loader-open-top;top:0}.loader-bottom{animation-name:loader-open-bottom;bottom:0}.loader-monogram{z-index:2;will-change:width, transform, filter;transform-origin:50%;-webkit-backface-visibility:hidden;backface-visibility:hidden;width:min(240px,60vw);height:auto;animation:3.05s cubic-bezier(.76,0,.24,1) both loader-handoff;position:relative}.site-navigation{z-index:10;position:relative}.navigation-home{align-items:center;display:flex}.brand-button{cursor:pointer;opacity:1;background:0 0;border:0;place-items:center;width:76px;height:76px;padding:0;transition:transform .18s;display:grid}.loader-active .brand-button{opacity:0}.brand-button:hover{transform:scale(1.06)}.brand-button:focus-visible{outline-offset:5px;outline:2px solid}.navigation-links button:focus-visible{outline-offset:5px;outline:2px solid}.back-home-button:focus-visible{outline-offset:5px;outline:2px solid}.brand-button img{filter:brightness(0);width:76px;height:76px;display:block}.theme-dark .navigation-side .brand-button img{filter:brightness(0)invert()}.navigation-links button{text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.mobile-navigation-menu{display:none}.home-view{grid-template-columns:clamp(275px,28vw,430px) 1fr;gap:clamp(28px,5vw,80px);min-height:100svh;padding:clamp(24px,5vw,76px);display:grid;overflow:hidden}.home-rail{flex-direction:column;justify-content:space-between;min-height:calc(100svh - clamp(48px,10vw,152px));display:flex}.navigation-side{flex-direction:column;align-items:flex-start;display:flex}.navigation-side .navigation-links{flex-direction:column;width:100%;margin-top:clamp(20px,4vh,38px);display:flex}.navigation-side .navigation-links button{letter-spacing:-.055em;width:100%;padding:14px 0;font-size:clamp(25px,2.5vw,40px);font-weight:650;line-height:1;transition:transform .22s,opacity .22s;display:block;position:relative}.navigation-side .navigation-links button:after{content:"↗";opacity:0;font-size:20px;transition:opacity .18s,transform .18s;position:absolute;right:0;transform:translate(-8px,7px)}.navigation-side .navigation-links:hover button{opacity:.32}:is(.navigation-side .navigation-links button:hover,.navigation-side .navigation-links button:focus-visible){opacity:1;transform:translate(9px)}.navigation-side .navigation-links button:hover:after{opacity:1;transform:translate(0)}.navigation-side .navigation-links button:focus-visible:after{opacity:1;transform:translate(0)}.utility-links{border-top:1px solid color-mix(in srgb, currentColor 22%, transparent);justify-content:space-between;align-items:center;gap:20px;width:100%;margin-top:26px;padding-top:18px;display:flex}.social-links{align-items:center;gap:8px;display:flex}.social-links a{width:31px;height:31px;color:inherit;border:1px solid;border-radius:50%;place-items:center;text-decoration:none;transition:color .18s,background .18s,transform .18s;display:grid}.social-links svg{width:14px;height:14px}:is(.social-links a:hover,.social-links a:focus-visible){color:var(--chrome-bg);background:var(--chrome-text);transform:translateY(-2px)}.theme-toggle{cursor:pointer;background:0 0;border:1px solid;border-radius:50%;place-items:center;width:31px;height:31px;padding:0;transition:color .18s,background .18s,transform .18s;display:grid}.theme-toggle svg{width:13px;height:13px}:is(.theme-toggle:hover,.theme-toggle:focus-visible){color:var(--chrome-bg);background:var(--chrome-text);transform:rotate(12deg)}.home-footer{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.theme-switch{color:inherit;cursor:pointer;font:700 9px var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;background:0 0;border:0;flex:none;align-items:center;gap:7px;padding:7px 0;display:inline-flex}.theme-switch span{opacity:.38;transition:opacity .18s,transform .18s}.theme-switch span.is-active{opacity:1;transform:translateY(-1px)}.theme-switch i{opacity:.3;font-style:normal}:is(.theme-switch:hover span,.theme-switch:focus-visible span){opacity:1}.theme-switch:focus-visible{outline-offset:4px;outline:2px solid}.preview-theme-switch{z-index:3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0c0e24;border:1px solid;padding:10px 12px;position:absolute;top:clamp(20px,3.5vw,52px);left:clamp(28px,5vw,72px)}.resume-link{color:inherit;font:750 10px var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.resume-link span{transition:transform .18s}.resume-icon{display:none}:is(.resume-link:hover span,.resume-link:focus-visible span){transform:translate(3px,-3px)}.availability{font:650 10px/1.55 var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;margin:0}.preview-stage{isolation:isolate;min-height:calc(100svh - clamp(48px,10vw,152px));color:var(--paper);background:#26302f;align-items:flex-end;padding:clamp(28px,5vw,72px);transition:color .3s;display:flex;position:relative;overflow:hidden}.theme-image-stack{z-index:-4;position:absolute;inset:0}.theme-image{opacity:0;position:absolute;inset:0;overflow:hidden}.theme-image.is-current,.theme-image.is-outgoing{opacity:1}.theme-image.is-outgoing{z-index:1;will-change:clip-path, transform;animation:.65s cubic-bezier(.76,0,.24,1) both theme-image-reveal}.theme-image.is-outgoing.slide-right{--theme-image-clip-right:0;--theme-image-clip-left:100%;--theme-image-shift:10%}.theme-image-media{background-position:50%;background-repeat:no-repeat;background-size:cover;transition:transform .9s cubic-bezier(.2,.75,.2,1),filter .45s;position:absolute;inset:0;transform:scale(1.015)}.theme-image-light .theme-image-media{background-image:url(/mainBackground.jpg)}.theme-image-dark .theme-image-media{background-image:url(/DarkModeBackGround.jpg)}.preview-stage:after{content:"";z-index:-3;background:linear-gradient(#080c0e14 15%,#080c0eb3 100%);position:absolute;inset:0}.preview-background{z-index:-2;background:var(--preview-tint,transparent);transition:transform .55s cubic-bezier(.76,0,.24,1);position:absolute;inset:0;transform:translateY(101%)}.preview-profile .preview-stage{--preview-tint:#566f7fd1;color:var(--paper)}.preview-portfolio .preview-stage{--preview-tint:#c84545d1;color:#fff}.preview-experience .preview-stage{--preview-tint:#c9dd5cd6;color:var(--ink)}.preview-contact .preview-stage{--preview-tint:#7651a8d1;color:var(--paper)}.theme-dark .preview-profile .preview-stage{--preview-tint:#22313a80;color:var(--paper)}.theme-dark .preview-portfolio .preview-stage{--preview-tint:#4a1f2480;color:var(--paper)}.theme-dark .preview-experience .preview-stage{--preview-tint:#2f624280;color:var(--paper)}.theme-dark .preview-contact .preview-stage{--preview-tint:#3326408c;color:var(--paper)}.home-view:not(.preview-idle) .theme-image-media{filter:saturate(.75)contrast(1.08);transform:scale(1.055)}.theme-dark .preview-stage:after{background:linear-gradient(#0407082e 10%,#040708d1 100%)}.preview-profile .preview-background,.preview-portfolio .preview-background,.preview-experience .preview-background,.preview-contact .preview-background{transform:translateY(0)}.preview-copy{z-index:2;max-width:940px;animation:.48s cubic-bezier(.2,.75,.2,1) both preview-enter;position:relative}.preview-copy p{font:700 10px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;margin:0 0 18px}.preview-copy h1{letter-spacing:-.085em;max-width:900px;margin:0;font-size:clamp(58px,8.1vw,132px);line-height:.82}.preview-copy>span{max-width:460px;margin-top:32px;font-size:clamp(14px,1.3vw,19px);line-height:1.45;display:block}.intro-copy h1{font-size:clamp(70px,10vw,160px)}.preview-initial{z-index:-1;letter-spacing:-.13em;opacity:.06;font-size:clamp(250px,39vw,650px);font-weight:900;line-height:.8;position:absolute;top:-4%;right:-4%;transform:rotate(-6deg)}.portfolio-app{--chrome-bg:var(--paper);--chrome-text:var(--ink);background:var(--chrome-bg);min-height:100svh;color:var(--chrome-text);transition:background .32s,color .32s;position:relative;overflow:hidden}.portfolio-app.theme-dark{--chrome-bg:#111412;--chrome-text:#f1efe8}.home-view{background:var(--chrome-bg);color:var(--chrome-text);transition:background .32s,color .32s}.section-view{z-index:30;will-change:transform;min-height:100svh;transition:background .32s,color .32s;animation:.72s cubic-bezier(.76,0,.24,1) both section-open;position:fixed;inset:0;overflow-y:auto;box-shadow:18px 0 55px #0000002e}.section-view.is-exiting{pointer-events:none;animation:.72s cubic-bezier(.76,0,.24,1) both section-close}.navigation-top{border-bottom:1px solid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(16px,3vw,42px);height:112px;padding:18px clamp(24px,5vw,76px);display:grid}.navigation-top .navigation-links{justify-self:end;align-items:center;gap:clamp(18px,3vw,48px);display:flex}.theme-toggle-section{width:36px;height:36px}:is(.theme-toggle-section:hover,.theme-toggle-section:focus-visible){color:var(--ink);background:var(--paper)}.navigation-top .navigation-links button{align-items:baseline;gap:7px;padding:8px 0;font-size:13px;font-weight:700;display:flex;position:relative}.navigation-top .navigation-links button:after{content:"";background:currentColor;height:2px;transition:right .2s;position:absolute;bottom:1px;left:0;right:100%}.navigation-top .navigation-links button:hover:after,.navigation-top .navigation-links button.is-active:after{right:0}.back-home-button{cursor:pointer;font:750 10px var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;border-left:1px solid;align-items:center;gap:9px;margin-left:22px;padding:10px 0 10px 22px;display:flex}.back-home-button svg{width:13px;height:13px;transition:transform .18s}:is(.back-home-button:hover svg,.back-home-button:focus-visible svg){transform:translate(-4px)}.section-stage{align-items:flex-end;min-height:calc(100svh - 180px);padding:clamp(48px,7vw,110px) clamp(24px,5vw,76px);display:flex;overflow:hidden}.section-copy{width:100%;animation:.65s cubic-bezier(.2,.75,.2,1) .17s both section-copy-enter}.section-index{font:700 10px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;margin:0 0 clamp(30px,6vh,70px)}.section-copy>h1{letter-spacing:-.09em;max-width:1200px;margin:0;font-size:clamp(62px,10.5vw,166px);line-height:.79}.section-copy h1 em{font-family:Georgia,serif;font-weight:400}.section-lead{letter-spacing:-.035em;max-width:690px;margin:42px 0 0 auto;font-size:clamp(18px,2vw,28px);line-height:1.35}.theme-profile{background:var(--steel-blue);color:var(--paper)}.theme-portfolio{background:var(--brick-red);color:#fff}.theme-experience{background:var(--lively-lime);color:var(--ink)}.theme-contact{background:var(--contact-purple);color:var(--paper)}.theme-profile .brand-button img,.theme-portfolio .brand-button img,.theme-contact .brand-button img{filter:brightness(0)invert()}.portfolio-app.theme-dark .theme-profile{color:var(--paper);background:#22313a}.portfolio-app.theme-dark .theme-portfolio{color:var(--paper);background:#4a1f24}.portfolio-app.theme-dark .theme-experience{color:var(--paper);background:#2f6242}.portfolio-app.theme-dark .theme-contact{color:var(--paper);background:#332640}.portfolio-app.theme-dark .section-view .brand-button img{filter:brightness(0)invert()}.section-stage:has(.profile-copy){align-items:flex-start;overflow:visible}.profile-copy{flex-direction:column;align-items:center;gap:clamp(46px,7vh,76px);max-width:980px;margin:0 auto;display:flex}.profile-photo-wrap{aspect-ratio:1;border:1px solid;border-radius:50%;width:clamp(170px,17vw,230px);padding:8px;position:relative}.profile-photo-stage{justify-content:center;width:100%;display:flex;position:relative}.profile-photo-stage .profile-location{position:absolute;top:14px;left:calc(50% + clamp(105px,10vw,138px))}.profile-location{flex:none;align-items:center;gap:10px;display:flex}.profile-location>svg{width:13px;height:13px}.profile-location span{flex-direction:column;gap:4px;display:flex}.profile-location strong{font:700 9px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase}.profile-location small{font-size:13px;line-height:1.35}.profile-location-mobile{display:none}.profile-photo{aspect-ratio:1;object-fit:cover;filter:grayscale();border-radius:50%;width:100%;height:100%;display:block}.profile-intro-block{text-align:center;width:100%}.profile-intro-block .section-index{margin-bottom:clamp(28px,5vh,54px)}.profile-intro-block h1{letter-spacing:-.085em;margin:0;font-size:clamp(58px,7.6vw,124px);line-height:.82}.profile-intro{letter-spacing:-.025em;max-width:690px;margin:clamp(28px,4vh,46px) auto 0;font-size:clamp(17px,1.65vw,24px);line-height:1.42}.profile-plus{width:fit-content;font-family:var(--font-geist-mono), monospace;place-items:center;margin:20px auto;font-size:28px;font-weight:700;line-height:1;display:grid}.profile-depth{letter-spacing:.1em;text-transform:uppercase;margin:0 auto;font-size:clamp(11px,.9vw,14px);font-weight:700;line-height:1.4}.profile-contact-block{width:100%}.profile-contact-block h2{margin:0 0 14px}.profile-contact-block h2 button{color:inherit;font:700 10px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;background:0 0;border:0;padding:0}:is(.profile-contact-block h2 button:hover,.profile-contact-block h2 button:focus-visible){text-decoration:underline}.profile-contact{border-top:1px solid;border-bottom:1px solid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.profile-contact div{min-width:0;padding:20px}.profile-contact div+div{border-left:1px solid}.profile-contact div:first-child{padding-left:0}.profile-contact div:last-child{padding-right:0}.profile-contact dt{font:700 9px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;opacity:.68;align-items:center;gap:7px;margin-bottom:8px;display:flex}.availability-light{background:#35d06f;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 3px #35d06f33,0 0 12px #35d06fcc}.profile-contact dd{margin:0;font-size:clamp(13px,1.15vw,16px);line-height:1.45}.profile-contact a{color:inherit;text-decoration:none}.profile-contact a span{transition:transform .18s;display:inline-block}:is(.profile-contact a:hover,.profile-contact a:focus-visible){text-underline-offset:4px;text-decoration:underline}:is(.profile-contact a:hover span,.profile-contact a:focus-visible span){transform:translate(2px,-2px)}.portfolio-copy{align-self:stretch}.portfolio-copy>h1{margin-bottom:clamp(32px,5vh,58px)}.portfolio-reel-shell{width:100%}.portfolio-reel{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;outline:0;width:100%;position:relative;overflow:hidden}.portfolio-reel.is-dragging{cursor:grabbing}.portfolio-reel:focus-visible{outline-offset:8px;outline:2px solid}@media (min-width:761px){.portfolio-reel{border-top:1px solid #ffffffb8;border-bottom:1px solid #ffffffb8}}.portfolio-reel-track,.portfolio-reel-group{align-items:flex-end;gap:clamp(18px,2vw,30px);display:flex}.portfolio-reel-track{will-change:transform;width:max-content}.portfolio-reel-group,.portfolio-card{flex:none}.portfolio-card-link{color:inherit;-webkit-user-drag:none;text-decoration:none;display:block}.portfolio-card-wide{width:clamp(360px,36vw,620px)}.portfolio-card-square{width:clamp(270px,24vw,380px)}.portfolio-card-media{background:color-mix(in srgb, currentColor 8%, transparent);border:1px solid;position:relative;overflow:hidden}.portfolio-card img{pointer-events:none;width:100%;height:auto;display:block}.portfolio-fallback{aspect-ratio:1.95;color:#fff;background:linear-gradient(135deg,#17212c,#243b55);flex-direction:column;justify-content:space-between;padding:clamp(22px,3vw,42px);display:flex;position:relative;overflow:hidden}.portfolio-fallback>*{z-index:2;position:relative}.portfolio-fallback-category{max-width:65%;font:700 clamp(8px, .75vw, 11px) var(--font-geist-mono), monospace;letter-spacing:.13em;text-transform:uppercase;opacity:.78;line-height:1.4}.portfolio-fallback>div{gap:8px;display:grid}.portfolio-fallback strong{letter-spacing:-.065em;font-size:clamp(30px,4vw,62px);line-height:.9}.portfolio-fallback small{font:650 clamp(8px, .7vw, 10px) var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;opacity:.74}.portfolio-fallback-chess{background:linear-gradient(115deg,#102d25 0%,#174638 52%,#10211e 100%)}.portfolio-fallback-chess:before{content:"";aspect-ratio:1;background:conic-gradient(from 90deg, #ffedb738 25%, #06302652 0 50%, #ffedb738 0 75%, #06302652 0) 0 0 / 25% 25%;opacity:.84;width:57%;position:absolute;top:-18%;right:-4%;transform:rotate(7deg)}.portfolio-fallback-chess:after{content:"";background:linear-gradient(90deg,#08251ef5 0%,#08251ec7 48%,#0000 82%);position:absolute;inset:0}.portfolio-chess-knight{z-index:3;color:#ffe6a0;text-shadow:0 14px 30px #00000059;font:400 clamp(80px,10vw,150px)/1 Georgia,serif;position:absolute;top:50%;right:9%;transform:translateY(-50%)}.portfolio-card-media>span{color:#fff;width:30px;height:30px;font:700 9px var(--font-geist-mono), monospace;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#11111194;border:1px solid #ffffffbf;border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.portfolio-card-copy{justify-content:space-between;align-items:baseline;gap:18px;padding-top:12px;display:flex}.portfolio-card-copy h2{letter-spacing:-.045em;margin:0;font-size:clamp(20px,2vw,30px);line-height:1}:is(.portfolio-card-link:hover h2,.portfolio-card-link:focus-visible h2){text-underline-offset:5px;text-decoration:underline}.portfolio-card-copy h2 span{font-size:.52em;transition:transform .18s;display:inline-block}:is(.portfolio-card-link:hover h2 span,.portfolio-card-link:focus-visible h2 span){transform:translate(3px,-3px)}.portfolio-card-copy small{text-align:right;max-width:150px;font:650 8px var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;line-height:1.35}.portfolio-reel-hint{text-align:right;font:650 8px var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;opacity:.7;margin:18px 0 0}.project-detail-page{z-index:50;color:#fff;overscroll-behavior:contain;background:0 0;height:100svh;position:fixed;inset:0;overflow:hidden auto}.project-detail-panel{background:var(--paper);min-height:100svh;color:var(--ink);padding-right:64px;animation:.72s cubic-bezier(.76,0,.24,1) both project-detail-enter}html[data-theme=dark] .project-detail-panel{color:#f1efe8;background:#111412}.project-detail-page.is-exiting{pointer-events:none}.project-detail-page.is-exiting .project-detail-panel{animation:.72s cubic-bezier(.76,0,.24,1) both project-detail-exit}.project-detail-navigation{border-bottom:1px solid;justify-content:space-between;align-items:center;gap:24px;min-height:100px;padding:16px clamp(24px,5vw,76px);display:flex}.project-detail-brand{width:62px;height:62px;color:inherit;transition:transform .18s;display:block;position:relative}.project-detail-brand:hover{transform:scale(1.06)}.project-detail-brand:focus-visible{outline-offset:5px;outline:2px solid}.project-detail-brand img{filter:brightness(0);width:100%;height:100%;display:block}html[data-theme=dark] .project-detail-brand img{filter:brightness(0)invert()}@supports ((-webkit-mask:url('/monogram-dev.svg') center / contain no-repeat) or (mask:url('/monogram-dev.svg') center / contain no-repeat)){.project-detail-brand:before{content:"";background:currentColor;position:absolute;inset:0;-webkit-mask:url(/monogram-dev.svg) 50%/contain no-repeat;mask:url(/monogram-dev.svg) 50%/contain no-repeat}.project-detail-brand img{opacity:0}}.project-detail-back{z-index:3;background:color-mix(in srgb, currentColor 6%, transparent);width:64px;color:inherit;font:750 10px var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;border-left:1px solid;flex-direction:column;justify-content:center;align-items:center;gap:9px;text-decoration:none;transition:background .18s,color .18s;display:flex;position:fixed;top:0;bottom:0;right:0}.project-detail-back span{writing-mode:vertical-rl;transform:rotate(180deg)}.project-detail-back svg{width:12px;height:12px;transition:transform .18s}:is(.project-detail-back:hover svg,.project-detail-back:focus-visible svg){transform:translate(-4px)}:is(.project-detail-back:hover,.project-detail-back:focus-visible){background:var(--ink);color:var(--paper)}:is(html[data-theme=dark] .project-detail-back:hover,html[data-theme=dark] .project-detail-back:focus-visible){background:var(--paper);color:var(--ink)}.project-detail-controls{align-items:center;gap:14px;display:flex}:is(.project-detail-theme-toggle:hover,.project-detail-theme-toggle:focus-visible){background:var(--ink);color:var(--paper)}:is(html[data-theme=dark] .project-detail-theme-toggle:hover,html[data-theme=dark] .project-detail-theme-toggle:focus-visible){background:var(--paper);color:var(--ink)}.project-detail-content{width:min(1500px,100%);margin:0 auto;padding:clamp(46px,7vw,104px) clamp(24px,5vw,76px)}.project-detail-content>.section-index{margin-bottom:clamp(28px,4vh,48px)}.project-detail-hero{border:1px solid color-mix(in srgb, var(--ink) 24%, transparent);background:var(--paper);color:var(--ink);grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);align-items:center;gap:clamp(38px,6vw,94px);padding:clamp(28px,4vw,62px);display:grid}.project-detail-media{background:color-mix(in srgb, currentColor 8%, transparent);border:1px solid;overflow:hidden}.project-detail-media img{width:100%;height:auto;display:block}.project-detail-media-square{justify-self:center;width:min(100%,680px)}.project-detail-copy>p{font:700 9px var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;opacity:.72;margin:0 0 18px;line-height:1.4}.project-detail-copy h1{letter-spacing:-.085em;margin:0;font-size:clamp(56px,7vw,116px);line-height:.82}.project-detail-copy>span{letter-spacing:-.025em;max-width:620px;margin-top:30px;font-size:clamp(17px,1.65vw,24px);line-height:1.45;display:block}.project-detail-actions{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.project-detail-actions a{min-height:44px;color:inherit;font:700 9px var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;border:1px solid;align-items:center;gap:12px;padding:0 16px;text-decoration:none;transition:background .18s,transform .18s;display:flex}:is(.project-detail-actions a:hover,.project-detail-actions a:focus-visible){background:color-mix(in srgb, currentColor 14%, transparent);transform:translateY(-2px)}.project-detail-actions svg{width:13px;height:13px}.project-detail-lists{border:1px solid color-mix(in srgb, var(--ink) 24%, transparent);background:var(--paper);color:var(--ink);border-top:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(34px,6vw,90px);margin-top:0;padding:clamp(28px,4vw,52px);display:grid}html[data-theme=dark] .project-detail-hero,html[data-theme=dark] .project-detail-lists{color:#f1efe8;background:#151917;border-color:#fff3}.project-detail-lists h2{font:700 10px var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;margin:0 0 16px}.project-detail-lists ul{flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none;display:flex}.project-detail-lists li{font:650 clamp(9px, .9vw, 12px) var(--font-geist-mono), monospace;letter-spacing:.04em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:10px 14px}.section-stage:has(.experience-copy){align-items:flex-start;overflow:visible}.experience-copy{width:min(1440px,100%);margin:0 auto}.experience-header{grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);align-items:end;gap:clamp(36px,7vw,110px);display:grid}.experience-header .section-index{margin-bottom:clamp(28px,5vh,52px)}.experience-header h1{letter-spacing:-.09em;max-width:1050px;margin:0;font-size:clamp(60px,8.2vw,132px);line-height:.8}.experience-header h1 em{font-family:Georgia,serif;font-weight:400}.experience-header>p{letter-spacing:-.03em;max-width:390px;margin:0 0 5px;font-size:clamp(16px,1.55vw,22px);line-height:1.4}.technology-index,.employment-history{color:var(--ink);background:#f8f7f2;border:1px solid;margin-top:clamp(68px,9vw,126px);transition:background .32s,color .32s,box-shadow .32s;box-shadow:0 22px 50px #17171721}.portfolio-app.theme-dark .technology-index,.portfolio-app.theme-dark .employment-history{color:#f1efe8;background:#111412;box-shadow:0 24px 54px #0000003d}.technology-index-heading,.employment-history-heading{border-bottom:1px solid;grid-template-columns:minmax(150px,.35fr) minmax(0,1.65fr);align-items:baseline;gap:clamp(28px,5vw,72px);padding:21px clamp(24px,3vw,38px);display:grid}.technology-index-heading p,.employment-history-heading p{font:750 9px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;margin:0}.technology-index-heading h2,.employment-history-heading h2{letter-spacing:-.045em;margin:0;font-size:clamp(24px,2.6vw,40px);line-height:1}.technology-groups{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.technology-groups>div{min-width:0;padding:clamp(24px,3vw,38px)}.technology-groups>div+div{border-left:1px solid}.technology-groups h3{font:750 9px var(--font-geist-mono), monospace;letter-spacing:.1em;text-transform:uppercase;opacity:.62;margin:0 0 22px}.technology-groups ul{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.technology-groups li{background:color-mix(in srgb, currentColor 5%, transparent);font:700 clamp(9px, .85vw, 12px) var(--font-geist-mono), monospace;letter-spacing:.045em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:9px 13px;line-height:1;transition:background .18s,box-shadow .18s}.employment-history{margin-top:clamp(68px,8vw,112px)}.experience-timeline{margin:0;padding:0;list-style:none}.experience-timeline>li{border-bottom:1px solid;grid-template-columns:clamp(70px,8vw,110px) minmax(0,1fr);display:grid}.experience-timeline>li:last-child{border-bottom:0}.experience-marker{border-right:1px solid;justify-content:center;align-items:flex-start;min-height:250px;padding-top:32px;display:flex;position:relative}.experience-marker span{z-index:1;background:var(--lively-lime);width:34px;height:34px;font:750 9px var(--font-geist-mono), monospace;letter-spacing:.05em;border:1px solid;border-radius:50%;place-items:center;display:grid;position:relative}.portfolio-app.theme-dark .experience-marker span{background:#2f6242}.experience-marker i{opacity:.45;background:currentColor;width:1px;position:absolute;top:66px;bottom:0}.experience-timeline>li:last-child .experience-marker i{display:none}.experience-timeline article{grid-template-columns:minmax(140px,.32fr) minmax(230px,.58fr) minmax(320px,1.1fr);column-gap:clamp(24px,4vw,68px);padding:clamp(30px,4vw,58px);transition:background .22s,padding-left .22s;display:grid}.experience-timeline>li:hover article{background:color-mix(in srgb, currentColor 7%, transparent);padding-left:clamp(38px,5vw,74px)}.experience-role-meta{align-content:start;gap:10px;display:grid}.experience-role-meta p,.experience-role-meta span,.experience-role-heading>p{font:750 9px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;margin:0;line-height:1.45}.experience-role-meta span{opacity:.5}.experience-role-heading>p{opacity:.64;margin-bottom:18px}.experience-role-heading h3{letter-spacing:-.06em;margin:0;font-size:clamp(30px,3.4vw,52px);line-height:.92}.experience-role-detail>p{letter-spacing:-.025em;max-width:680px;margin:0;font-size:clamp(16px,1.55vw,22px);line-height:1.42}.experience-role-detail ul{gap:9px;margin:26px 0 0;padding:0;list-style:none;display:grid}.experience-role-detail li{padding-left:17px;font-size:13px;line-height:1.45;position:relative}.experience-role-detail li:before{content:"—";position:absolute;left:0}.experience-role-tools{border-top:1px solid color-mix(in srgb, currentColor 35%, transparent);flex-wrap:wrap;grid-column:1/-1;gap:8px;margin:34px 0 0;padding:22px 0 0;list-style:none;display:flex}.experience-role-tools li{background:color-mix(in srgb, currentColor 5%, transparent);font:700 8px var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;border:1px solid;border-radius:999px;padding:8px 11px;transition:background .18s,box-shadow .18s}@media (hover:hover){.technology-groups li:hover,.experience-role-tools li:hover{background:color-mix(in srgb, currentColor 12%, transparent);box-shadow:0 7px 14px #0000001f}}.contact-details{grid-template-columns:1fr;gap:22px;margin:0;display:grid}.contact-copy{max-width:1280px;margin-inline:auto}.contact-copy>.section-index{text-align:center}.contact-copy>h1{text-align:center;max-width:1160px;margin-inline:auto;font-size:clamp(58px,8.4vw,136px)}.contact-details>*{min-width:0;padding:0}.contact-details>*+*{border:0}.contact-details>:first-child{padding-left:0}.contact-details>:last-child{padding-right:0}.contact-details a{color:inherit;text-decoration:none}.contact-details span{font:700 9px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;opacity:.7;align-items:center;gap:7px;margin-bottom:8px;display:flex}.contact-details span svg{width:10px;height:10px}.contact-details strong{font-size:clamp(13px,1.15vw,16px);font-weight:500;line-height:1.45;display:block}.contact-info-panel h2{letter-spacing:-.035em;margin:0;font-size:clamp(20px,2vw,30px);line-height:1.1}.contact-info-panel{align-self:start}.contact-mobile-intro{display:none}.contact-info-panel>p{opacity:.78;max-width:380px;margin:12px 0 30px;font-size:clamp(15px,1.4vw,19px);line-height:1.45}:is(.contact-details a:hover strong,.contact-details a:focus-visible strong){text-underline-offset:4px;text-decoration:underline}.contact-form{background:color-mix(in srgb, currentColor 7%, transparent);border:1px solid;justify-self:start;width:100%;max-width:500px;margin:0;padding:clamp(18px,2.2vw,30px)}.contact-body{margin-top:clamp(36px,5vh,58px);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:clamp(40px,5vw,72px);max-width:1120px;margin-inline:auto;padding-top:clamp(36px,4vw,60px);display:grid}.contact-form-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.contact-form label{display:block}.contact-form label>span{font:700 9px var(--font-geist-mono), monospace;letter-spacing:.09em;text-transform:uppercase;opacity:.7;margin-bottom:8px;display:block}.contact-form input,.contact-form textarea{width:100%;color:inherit;font:inherit;background:0 0;border:1px solid;border-radius:0;outline:0}.contact-form input{height:48px;padding:0 14px}.contact-form textarea{resize:vertical;min-height:112px;padding:13px 14px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:currentColor;opacity:.52}.contact-form input:focus,.contact-form textarea:focus{box-shadow:inset 0 0 0 2px}.contact-subject-field,.contact-message-field{grid-column:1/-1}.contact-form-footer{justify-content:flex-end;align-items:center;gap:18px;margin-top:14px;display:flex}.contact-form-footer small{font:600 9px var(--font-geist-mono), monospace;letter-spacing:.07em;text-transform:uppercase;opacity:.62}.contact-form-footer button{min-height:44px;color:inherit;cursor:pointer;font:700 10px var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:1px solid;align-items:center;gap:16px;padding:0 18px;transition:background .18s,transform .18s;display:flex}:is(.contact-form-footer button:hover,.contact-form-footer button:focus-visible){background:color-mix(in srgb, currentColor 14%, transparent);transform:translateY(-2px)}.section-footer{border-top:1px solid;justify-content:space-between;align-items:center;gap:14px;min-height:68px;padding:12px clamp(24px,5vw,76px);display:flex}.section-footer-signature{gap:3px;display:grid}.section-footer-signature strong{font:700 11px var(--font-geist-mono), monospace;letter-spacing:.04em}.section-footer-signature small{font:600 8px var(--font-geist-mono), monospace;letter-spacing:.06em;text-transform:uppercase;opacity:.65}.section-footer-icons{gap:8px;display:flex}.section-footer a{width:34px;height:34px;color:inherit;border:1px solid;border-radius:50%;place-items:center;transition:background .18s,transform .18s;display:grid}:is(.section-footer a:hover,.section-footer a:focus-visible){background:color-mix(in srgb, currentColor 14%, transparent);transform:translateY(-2px)}.section-footer svg{width:14px;height:14px}@keyframes loader-handoff{0%{opacity:0;filter:brightness();transform:translate(0,0)scale(.82)}10%{opacity:1;filter:brightness();transform:translate(0,0)scale(1)}18%{opacity:1;filter:brightness();transform:translate(0,0)scale(1.055)}26%,55%{opacity:1;filter:brightness();width:min(240px,60vw);transform:translate(0,0)scale(1)}to{opacity:1;width:76px;transform:translate3d(var(--loader-target-x), var(--loader-target-y), 0);filter:var(--loader-logo-final-filter)}}@keyframes loader-open-top{to{transform:translateY(-100%)}}@keyframes loader-open-bottom{to{transform:translateY(100%)}}@keyframes section-open{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes section-close{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes preview-enter{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes project-detail-exit{0%{transform:none}to{transform:translate(-100%)}}@keyframes project-detail-enter{0%{transform:translate(-100%)}to{transform:none}}@keyframes section-copy-enter{0%{opacity:0;transform:translateY(45px)}to{opacity:1;transform:translateY(0)}}@keyframes theme-image-reveal{0%{clip-path:inset(0);transform:translate(0)}to{clip-path:inset(0 var(--theme-image-clip-right) 0 var(--theme-image-clip-left));transform:translateX(var(--theme-image-shift))}}@media (max-width:760px){:root{--loader-target-x:calc(-50vw + 60px);--loader-target-y:calc(-50vh + 60px)}.home-view{grid-template-rows:auto 1fr;grid-template-columns:1fr;gap:22px;min-height:100svh;padding:22px;overflow:auto}.section-view{overflow-x:hidden}.home-rail{min-height:auto}.navigation-side{grid-template-columns:76px 1fr;align-items:flex-start;gap:8px 18px;display:grid}.desktop-navigation-links{display:none!important}.mobile-navigation-menu{place-self:center end;display:block;position:relative}.mobile-navigation-menu summary{cursor:pointer;min-width:96px;font:750 10px var(--font-geist-mono), monospace;letter-spacing:.08em;text-transform:uppercase;border:1px solid;justify-content:space-between;align-items:center;gap:14px;padding:11px 10px;list-style:none;display:flex}.mobile-navigation-menu summary::-webkit-details-marker{display:none}.mobile-navigation-menu summary svg{width:10px;height:10px;transition:transform .18s}.mobile-navigation-menu[open] summary svg{transform:rotate(180deg)}.mobile-navigation-options{z-index:40;border:1px solid var(--chrome-text);background:var(--chrome-bg);width:min(240px,72vw);color:var(--chrome-text);padding:8px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 40px #0000002e}.section-view.theme-profile .mobile-navigation-options{background:var(--steel-blue);color:var(--paper);border-color:currentColor}.section-view.theme-portfolio .mobile-navigation-options{background:var(--brick-red);color:#fff;border-color:currentColor}.section-view.theme-experience .mobile-navigation-options{background:var(--lively-lime);color:var(--ink);border-color:currentColor}.section-view.theme-contact .mobile-navigation-options{background:var(--contact-purple);color:var(--paper);border-color:currentColor}.portfolio-app.theme-dark .section-view.theme-profile .mobile-navigation-options{color:var(--paper);background:#22313a}.portfolio-app.theme-dark .section-view.theme-portfolio .mobile-navigation-options{color:var(--paper);background:#4a1f24}.portfolio-app.theme-dark .section-view.theme-experience .mobile-navigation-options{color:var(--paper);background:#2f6242}.portfolio-app.theme-dark .section-view.theme-contact .mobile-navigation-options{color:var(--paper);background:#332640}.mobile-navigation-options button{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:13px 12px;font-size:16px;font-weight:650;display:block}:is(.mobile-navigation-options button:hover,.mobile-navigation-options button:focus-visible,.mobile-navigation-options button.is-active){background:color-mix(in srgb, currentColor 10%, transparent)}.navigation-side .mobile-navigation-menu{grid-area:1/2;margin-top:5px}.navigation-side .navigation-links button:after,.availability{display:none}.utility-links{border-top:1px solid color-mix(in srgb, currentColor 22%, transparent);grid-area:2/2;justify-content:flex-end;align-self:center;gap:4px;margin-top:0;padding-top:10px}.utility-links .social-links{gap:3px}.utility-links .social-links a{width:25px;height:25px}.utility-links .social-links svg{width:11px;height:11px}.utility-links .resume-link{border:1px solid;border-radius:50%;place-items:center;width:25px;height:25px;display:grid}.utility-links .resume-text{display:none}.utility-links .resume-icon{width:10px;height:10px;display:block}.preview-stage{min-height:57svh;padding:25px}.theme-image.is-outgoing{animation-duration:.52s}.theme-image.is-outgoing.slide-right{--theme-image-shift:6%}.preview-theme-switch{top:14px;left:20px;right:auto}.preview-copy h1,.intro-copy h1{font-size:clamp(54px,16vw,90px)}.preview-copy>span{margin-top:22px}.intro-copy>span{display:none}.navigation-top{align-items:center;gap:20px;height:auto;min-height:105px;padding:16px 22px}.navigation-top .mobile-navigation-menu{align-self:center;margin-top:0}.back-home-button{margin-left:12px;padding-left:12px}.back-home-button span{display:none}.section-stage{min-height:calc(100svh - 169px);padding:45px 22px}.section-copy>h1,.experience-copy>h1{font-size:clamp(54px,16vw,90px)}.experience-header{grid-template-columns:1fr;gap:26px}.experience-header h1{font-size:clamp(54px,16vw,90px)}.experience-header>p{max-width:520px}.technology-index,.employment-history{margin-top:56px}.technology-index-heading,.employment-history-heading{grid-template-columns:1fr;gap:8px;padding:16px}.technology-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.technology-groups>div{padding:22px 14px}.technology-groups>div:nth-child(-n+2){border-bottom:1px solid}.technology-groups>div:nth-child(3){border-left:0}.technology-groups li{padding:8px 10px;font-size:9px}.experience-timeline>li{grid-template-columns:52px minmax(0,1fr)}.experience-marker{min-height:100%;padding-top:24px}.experience-marker span{width:28px;height:28px;font-size:8px}.experience-marker i{top:52px}.experience-timeline article{padding:26px 18px 30px 20px;display:block}.experience-timeline>li:hover article{padding-left:20px}.experience-role-heading{margin-top:26px}.experience-role-heading h3{font-size:clamp(34px,10vw,50px)}.experience-role-detail{margin-top:22px}.experience-role-tools{margin-top:24px;padding-top:18px}.section-lead{margin-top:32px}.contact-details{grid-template-columns:1fr}.contact-body{grid-template-columns:1fr;align-items:stretch;gap:28px;margin-top:30px;padding-top:0}.contact-body .contact-form{order:-1}.contact-mobile-intro{order:-2;display:block}.contact-mobile-intro>p{opacity:.78;max-width:380px;margin:12px 0 0;font-size:clamp(15px,4.5vw,19px);line-height:1.45}.contact-info-panel>h2,.contact-info-panel>p{display:none}.contact-info-panel{align-self:stretch;width:100%}.contact-details>*{padding:0}.contact-details>*+*{border-top:0;border-left:0}.contact-details>:nth-child(odd){padding-left:0}.contact-details>:nth-child(2n){border-left:0;padding-right:0}.contact-details>:nth-child(n+3){border-top:0}.contact-details strong{overflow-wrap:anywhere}.contact-form-fields{grid-template-columns:1fr;gap:14px}.contact-form{justify-self:stretch;max-width:none;margin-top:0;padding:16px}.contact-subject-field,.contact-message-field{grid-column:auto}.contact-form-footer{justify-content:space-between}.section-footer{min-height:64px;padding:12px 22px}.section-stage:has(.profile-copy){width:100%;min-width:0;overflow:clip visible}.profile-copy{gap:48px;width:100%;min-width:0;max-width:100%}.profile-photo-wrap{flex:none;width:min(52vw,190px)}.profile-intro-block,.profile-contact-block{min-width:0;max-width:100%}.profile-intro-block h1{font-size:clamp(54px,16vw,90px)}.profile-contact{border:0;border-top:1px solid;grid-template-columns:1fr;width:100%}.profile-contact div{border:0;padding:10px 0}.profile-contact dt{margin-bottom:5px}.profile-contact div+div{border:0}.profile-contact div:last-child{padding-right:0}.profile-contact dd{overflow-wrap:anywhere}.profile-location-desktop{display:none}.profile-location-mobile{border-top:1px solid;gap:7px;margin-top:12px;padding-top:10px;display:flex}.profile-location-mobile>svg{width:11px;height:11px}.profile-location-mobile small{font-size:12px}.portfolio-card-wide{width:min(82vw,500px)}.portfolio-card-square{width:min(70vw,360px)}.portfolio-card-copy{display:block}.portfolio-card-copy small{text-align:left;max-width:none;margin-top:7px;display:block}.portfolio-reel-hint{max-width:260px;line-height:1.5}.project-detail-navigation{min-height:88px;padding:13px 22px}.project-detail-brand{width:54px;height:54px}.project-detail-back{width:46px;font-size:9px}.project-detail-panel{padding-right:46px}.project-detail-content{padding:38px 22px 54px}.project-detail-hero{grid-template-columns:1fr;gap:28px;padding:20px}.project-detail-media-square{width:100%}.project-detail-copy h1{font-size:clamp(52px,16vw,84px)}.project-detail-copy>span{margin-top:22px}.project-detail-lists{grid-template-columns:1fr;gap:32px;padding:22px 20px}.skill-cloud{margin-top:36px}}@media (min-width:761px) and (max-height:760px){.preview-stage:has(.intro-copy) .intro-copy{position:absolute;top:clamp(88px,13vh,120px);left:clamp(28px,5vw,72px);right:clamp(28px,5vw,72px)}}@media (prefers-reduced-motion:reduce){.page-loader{display:none}*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.theme-image.is-outgoing{display:none}}
