.portfolio-root{--p-black:#0a0a0a;--p-white:#f5f4f0;--p-gray:#8a8a8a;--p-light-gray:#d8d6d0;--p-mono:"IBM Plex Mono", monospace;--p-sans:"IBM Plex Sans", sans-serif;font-family:var(--p-mono);background:var(--p-white);color:var(--p-black);cursor:crosshair;flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.portfolio-root>section{flex:1 0 auto}.portfolio-root>footer{flex-shrink:0;margin-top:auto}.portfolio-root *,.portfolio-root :before,.portfolio-root :after{box-sizing:border-box;margin:0;padding:0}.portfolio-root{scroll-behavior:smooth}.portfolio-root .cursor{background:var(--p-black);pointer-events:none;z-index:9999;mix-blend-mode:multiply;border-radius:50%;width:8px;height:8px;transition:transform .15s;position:fixed}@media(hover:none),(pointer:coarse){.portfolio-root{cursor:auto}.portfolio-root .cursor{display:none}}.portfolio-root nav{z-index:100;background:var(--p-white);border-bottom:1px solid var(--p-light-gray);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;padding:20px 40px;display:flex;position:fixed;top:0;left:0;right:0}.portfolio-root .nav-links{flex-wrap:wrap;gap:8px;list-style:none;display:flex}.portfolio-root .nav-box{border:1px solid var(--p-light-gray);background:var(--p-white);height:36px;font-family:var(--p-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--p-black);cursor:pointer;justify-content:center;align-items:center;padding:0 14px;font-size:11px;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.portfolio-root .nav-box:hover,.portfolio-root .nav-box.active{background:var(--p-black);color:var(--p-white);border-color:var(--p-black)}.portfolio-root .lang-switch{gap:4px;margin-left:16px;display:flex}.portfolio-root .lang-box{letter-spacing:.1em;min-width:0;height:26px;padding:0 8px;font-size:9px}.portfolio-root .back-btn{border:1px solid var(--p-light-gray);background:var(--p-white);font-family:var(--p-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--p-black);cursor:pointer;align-self:flex-start;margin:80px 60px 0;padding:10px 18px;font-size:11px;transition:background .2s,color .2s,border-color .2s}.portfolio-root .back-btn:hover{background:var(--p-black);color:var(--p-white);border-color:var(--p-black)}@media(max-width:900px){.portfolio-root .back-btn{margin:80px 24px 0}.portfolio-root .bottom-up-row{margin:-40px 24px 16px}}.portfolio-root .bottom-up-row{justify-content:flex-end;margin:-48px 60px 20px;display:flex}.portfolio-root .up-btn{border:1px solid var(--p-light-gray);background:var(--p-white);color:var(--p-black);cursor:pointer;justify-content:center;align-items:center;padding:10px 18px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.portfolio-root .up-btn:hover{background:var(--p-black);color:var(--p-white);border-color:var(--p-black)}.portfolio-root .up-btn svg{width:14px;height:14px;display:block}.portfolio-root #hero{border-bottom:none;min-height:100vh;padding-top:61px;display:block}.portfolio-root .hero-left{flex-direction:column;justify-content:flex-end;width:100%;padding:80px 60px;display:flex}.portfolio-root .hero-eyebrow{letter-spacing:.2em;color:var(--p-gray);text-transform:uppercase;opacity:0;margin-bottom:40px;font-size:10px;animation:.8s .2s forwards pFadeUp}.portfolio-root .hero-name{letter-spacing:-.02em;text-transform:uppercase;opacity:0;font-size:clamp(36px,5vw,68px);font-weight:700;line-height:1;animation:.8s .4s forwards pFadeUp}.portfolio-root .hero-title{color:var(--p-gray);letter-spacing:.05em;opacity:0;margin-top:20px;font-size:clamp(13px,1.5vw,18px);font-style:italic;font-weight:300;animation:.8s .6s forwards pFadeUp}.portfolio-root .hero-year{color:var(--p-gray);letter-spacing:.2em;font-size:11px;position:absolute;top:80px;right:40px}.portfolio-root .hero-right{flex-direction:column;justify-content:space-between;padding:80px 60px;display:flex}.portfolio-root .hero-sections{margin-top:auto}.portfolio-root .hero-section-item{border-bottom:1px solid var(--p-light-gray);opacity:0;cursor:pointer;color:var(--p-black);justify-content:space-between;align-items:center;padding:18px 0;text-decoration:none;transition:padding-left .3s;animation:.6s forwards pFadeUp;display:flex}.portfolio-root .hero-section-item:hover{padding-left:12px}.portfolio-root .hero-section-item:first-child{animation-delay:.5s}.portfolio-root .hero-section-item:nth-child(2){animation-delay:.65s}.portfolio-root .hero-section-item:nth-child(3){animation-delay:.8s}.portfolio-root .hero-section-item:nth-child(4){animation-delay:.95s}.portfolio-root .section-label{letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:500}.portfolio-root .section-num{color:var(--p-gray);font-size:10px}.portfolio-root .hero-divider{background:var(--p-black);opacity:0;width:40px;height:1px;margin:40px 0;animation:.6s .8s forwards pExpandLine}.portfolio-root .hero-bio{color:var(--p-gray);max-width:360px;font-size:12px;line-height:1.8;font-family:var(--p-sans);opacity:0;font-weight:300;animation:.8s 1s forwards pFadeUp}.portfolio-root section{border-bottom:1px solid var(--p-light-gray)}.portfolio-root .section-header{border-bottom:1px solid var(--p-light-gray);align-items:baseline;gap:24px;padding:60px 60px 40px;display:flex}.portfolio-root .section-title{text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(22px,3vw,38px);font-weight:700}.portfolio-root .section-idx{color:var(--p-gray);letter-spacing:.1em;font-size:11px}.portfolio-root .arch-grid{grid-template-columns:1fr 1fr 1fr;display:grid}.portfolio-root .arch-card{border-right:1px solid var(--p-light-gray);border-bottom:1px solid var(--p-light-gray);padding:40px;transition:background .3s}.portfolio-root .arch-card:hover{background:var(--p-black);color:var(--p-white)}.portfolio-root .arch-card:hover .arch-institution{color:#f5f4f080}.portfolio-root .arch-card:hover .arch-projects li{border-color:#f5f4f026}.portfolio-root .arch-year{letter-spacing:.15em;color:var(--p-gray);margin-bottom:8px;font-size:10px}.portfolio-root .arch-card:hover .arch-year{color:#f5f4f080}.portfolio-root .arch-institution{letter-spacing:.05em;text-transform:uppercase;margin-bottom:4px;font-size:13px;font-weight:500;transition:color .3s}.portfolio-root .arch-school{color:var(--p-gray);margin-bottom:24px;font-size:11px;font-style:italic}.portfolio-root .arch-card:hover .arch-school{color:#f5f4f066}.portfolio-root .arch-projects{list-style:none}.portfolio-root .arch-projects li{border-bottom:1px solid var(--p-light-gray);color:var(--p-gray);padding:8px 0;font-size:11px;transition:color .2s,border-color .3s}.portfolio-root .arch-card:hover .arch-projects li{color:#f5f4f0b3}.portfolio-root .arch-projects li:last-child{border-bottom:none}.portfolio-root .studio-grid{grid-template-columns:240px 1fr;display:grid}.portfolio-root .studio-sidebar{border-right:1px solid var(--p-light-gray);padding:40px}.portfolio-root .studio-nav-item{border-bottom:1px solid var(--p-light-gray);letter-spacing:.08em;text-transform:uppercase;color:var(--p-gray);cursor:pointer;text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;width:100%;padding:14px 0;font-family:inherit;font-size:11px;text-decoration:none;transition:color .2s,padding-left .2s;display:block}.portfolio-root .studio-nav-item:hover,.portfolio-root .studio-nav-item.active{color:var(--p-black);padding-left:8px}.portfolio-root .studio-content{padding:40px 60px}.portfolio-root .studio-entry{border-bottom:1px solid var(--p-light-gray);padding:30px 0}.portfolio-root .studio-level{letter-spacing:.2em;color:var(--p-gray);text-transform:uppercase;margin-bottom:8px;font-size:10px}.portfolio-root .studio-name{text-transform:uppercase;letter-spacing:-.01em;margin-bottom:16px;font-size:20px;font-weight:700}.portfolio-root .studio-desc{font-family:var(--p-sans);color:var(--p-gray);max-width:500px;font-size:13px;line-height:1.8}.portfolio-root .jobs-list{padding:0 60px 60px}.portfolio-root .job-item{padding:40px 0;display:block}.portfolio-root .job-item>div:first-child{margin-bottom:24px}.portfolio-root .retail-header{border-bottom:none;padding-bottom:8px}.portfolio-root .retail-subtitle{text-align:left;text-transform:uppercase;letter-spacing:.1em;color:var(--p-black);border-bottom:none;margin:0;padding:0 60px 24px;font-size:18px;font-weight:500}.portfolio-root .contact-header{border-bottom:none;padding-bottom:8px}.portfolio-root .download-text{border-top:none;padding-top:24px}.portfolio-root #retail .section-header,.portfolio-root #projects .section-header,.portfolio-root #technical .section-header,.portfolio-root #resume .section-header,.portfolio-root #contact .section-header{border-bottom:none;padding-bottom:8px}.portfolio-root #retail,.portfolio-root #projects,.portfolio-root #technical,.portfolio-root #resume,.portfolio-root #contact{border-bottom:none}.portfolio-root .job-client{text-transform:uppercase;letter-spacing:.05em;font-size:16px;font-weight:700}.portfolio-root .job-client-sub{color:var(--p-black);letter-spacing:.1em;text-transform:uppercase;margin-top:0;font-size:14px;font-weight:400;line-height:1}.portfolio-root .section-subtitle{letter-spacing:.05em;color:var(--p-black);padding:0 60px 24px;font-size:18px;font-weight:400}.portfolio-root .subtitle-row{flex-wrap:nowrap;align-items:center;gap:12px;display:flex}.portfolio-root .more-info-btn{border:1px solid var(--p-black);background:var(--p-white);height:16px;font-family:var(--p-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--p-black);cursor:pointer;justify-content:center;align-items:center;padding:0 8px;font-size:9px;line-height:1;transition:background .2s,color .2s;display:inline-flex}.portfolio-root .more-info-btn:hover{background:var(--p-black);color:var(--p-white)}@media(max-width:900px){.portfolio-root .section-subtitle{padding:0 24px 24px}}.portfolio-root .job-projects-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.portfolio-root .job-project-card{border:1px solid var(--p-light-gray);padding:20px;transition:border-color .2s,background .2s}.portfolio-root .job-project-card:hover{border-color:var(--p-black);background:var(--p-black);color:var(--p-white)}.portfolio-root .job-project-name{text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:12px;font-weight:500}.portfolio-root .job-project-items{color:var(--p-gray);font-size:10px;line-height:1.8}.portfolio-root .job-project-card:hover .job-project-items{color:#f5f4f080}.portfolio-root .sketches-grid{grid-template-columns:1fr 1fr;display:grid}.portfolio-root .sketch-col{border-right:1px solid var(--p-light-gray);padding:40px 60px}.portfolio-root .sketch-col:last-child{border-right:none}.portfolio-root .sketch-col-title{letter-spacing:.18em;text-transform:uppercase;color:var(--p-gray);border-bottom:1px solid var(--p-light-gray);margin-bottom:32px;padding-bottom:12px;font-size:11px}.portfolio-root .sketch-item{border-bottom:1px solid var(--p-light-gray);color:var(--p-gray);cursor:default;align-items:center;gap:12px;padding:12px 0;font-size:12px;transition:color .2s,padding-left .2s;display:flex}.portfolio-root .sketch-item:hover{color:var(--p-black);padding-left:8px}.portfolio-root .sketch-num{color:var(--p-light-gray);min-width:20px;font-size:9px}.portfolio-root .photo-section{padding:40px 60px}.portfolio-root .photo-intro{font-family:var(--p-sans);color:var(--p-gray);max-width:480px;margin-bottom:40px;font-size:13px;line-height:1.8}.portfolio-root .photo-grid{background:var(--p-light-gray);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.portfolio-root .photo-item{background:var(--p-white);cursor:default;padding:28px 20px;transition:background .25s}.portfolio-root .photo-item:hover{background:var(--p-black);color:var(--p-white)}.portfolio-root .photo-num{color:var(--p-light-gray);margin-bottom:8px;font-size:9px}.portfolio-root .photo-item:hover .photo-num{color:#f5f4f04d}.portfolio-root .photo-name{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:500;line-height:1.4}.portfolio-root #download{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:80px 60px;display:flex}.portfolio-root .download-text h3{text-transform:uppercase;letter-spacing:-.01em;font-size:28px;font-weight:700}.portfolio-root .download-text p{font-family:var(--p-sans);color:var(--p-gray);margin-top:8px;font-size:13px}.portfolio-root .btn-download{background:var(--p-black);color:var(--p-white);font-family:var(--p-mono);letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--p-black);align-items:center;gap:12px;padding:16px 32px;font-size:11px;text-decoration:none;transition:background .25s,color .25s;display:inline-flex}.portfolio-root .btn-download:hover{color:var(--p-black);background:0 0}.portfolio-root .btn-download svg{transition:transform .25s}.portfolio-root .btn-download:hover svg{transform:translateY(3px)}.portfolio-root footer{border-top:1px solid var(--p-light-gray);background:var(--p-black);color:var(--p-white);justify-content:flex-end;align-items:center;padding:10px 60px;display:flex}.portfolio-root .home-sections{width:100%;max-width:980px;margin-top:60px;padding:0;list-style:none}.portfolio-root .home-section-row{border:none;border-bottom:1px solid var(--p-light-gray);width:100%;font-family:var(--p-mono);text-transform:uppercase;cursor:pointer;color:var(--p-black);background:0 0;justify-content:space-between;align-items:center;padding:22px 0;transition:opacity .2s,padding .2s;display:flex}.portfolio-root .home-section-row:first-child{border-top:1px solid var(--p-light-gray)}.portfolio-root .home-section-row:last-child{border-bottom:1px solid var(--p-light-gray)}.portfolio-root .home-section-row:hover{opacity:.6;padding-left:8px}.portfolio-root .hs-label{letter-spacing:.18em;font-size:13px;font-weight:500}.portfolio-root .hs-idx{color:var(--p-gray);letter-spacing:.1em;font-size:11px}.portfolio-root .hero-bio-inline{max-width:640px;margin-top:24px}.portfolio-root footer .f-name{letter-spacing:.15em;text-transform:uppercase;font-size:11px}.portfolio-root footer .f-right{color:var(--p-gray);letter-spacing:.1em;font-size:10px}@keyframes pFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pExpandLine{0%{opacity:0;width:0}to{opacity:1;width:40px}}.portfolio-root .reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(24px)}.portfolio-root .reveal.visible{opacity:1;transform:none}@media(max-width:900px){.portfolio-root nav{flex-wrap:wrap;gap:12px;padding:16px 24px}.portfolio-root .nav-links{gap:6px}.portfolio-root .nav-box{padding:6px 10px;font-size:9px}.portfolio-root .lang-switch{margin-left:0}.portfolio-root #hero{grid-template-columns:1fr}.portfolio-root .hero-left{border-right:none;padding:60px 24px 40px}.portfolio-root .hero-right{padding:0 24px 60px}.portfolio-root .section-header{padding:40px 24px 24px}.portfolio-root .arch-grid,.portfolio-root .studio-grid{grid-template-columns:1fr}.portfolio-root .studio-sidebar{border-right:none;border-bottom:1px solid var(--p-light-gray)}.portfolio-root .studio-content{padding:24px}.portfolio-root .sketches-grid{grid-template-columns:1fr}.portfolio-root .sketch-col{border-right:none;padding:24px}.portfolio-root .photo-grid{grid-template-columns:repeat(2,1fr)}.portfolio-root .photo-section,.portfolio-root .jobs-list,.portfolio-root #download,.portfolio-root footer{padding:40px 24px}.portfolio-root .job-item{grid-template-columns:1fr;gap:16px}}.portfolio-root .contact-subtitle{text-transform:uppercase;letter-spacing:.1em;margin-bottom:32px;padding-top:0;font-size:18px;font-weight:500}.portfolio-root .contact-links{flex-direction:column;align-items:flex-start;gap:16px;max-width:480px;display:flex}.portfolio-root .contact-btn{justify-content:flex-start;width:100%}.portfolio-root #contact{flex-direction:column;min-height:calc(100vh - 120px);display:flex}.portfolio-root #contact .jobs-list{flex:1}.portfolio-root .charlotte-gallery,.portfolio-root .whistler-gallery,.portfolio-root .quicentro-gallery,.portfolio-root .atlanta-gallery,.portfolio-root .baltimore-gallery,.portfolio-root .chicago-fulton-gallery,.portfolio-root .scala-gallery,.portfolio-root .sala-espera-gallery,.portfolio-root .swiss-books-gallery,.portfolio-root .spetris-gallery,.portfolio-root .fresan-gallery{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;cursor:grab;scrollbar-width:thin;gap:16px;padding:8px 0 16px;display:flex;overflow:auto hidden}.portfolio-root .charlotte-gallery.dragging,.portfolio-root .whistler-gallery.dragging,.portfolio-root .quicentro-gallery.dragging,.portfolio-root .atlanta-gallery.dragging,.portfolio-root .baltimore-gallery.dragging,.portfolio-root .chicago-fulton-gallery.dragging,.portfolio-root .scala-gallery.dragging,.portfolio-root .sala-espera-gallery.dragging,.portfolio-root .swiss-books-gallery.dragging,.portfolio-root .spetris-gallery.dragging,.portfolio-root .fresan-gallery.dragging{cursor:grabbing;scroll-snap-type:none}.portfolio-root .charlotte-slide,.portfolio-root .whistler-slide,.portfolio-root .quicentro-slide,.portfolio-root .atlanta-slide,.portfolio-root .baltimore-slide,.portfolio-root .chicago-fulton-slide,.portfolio-root .scala-slide,.portfolio-root .sala-espera-slide,.portfolio-root .swiss-books-slide,.portfolio-root .spetris-slide,.portfolio-root .fresan-slide{scroll-snap-align:start;background:var(--p-light-gray,#eee);flex:none;width:min(560px,80vw);height:380px;overflow:hidden}.portfolio-root .charlotte-slide img,.portfolio-root .whistler-slide img,.portfolio-root .quicentro-slide img,.portfolio-root .atlanta-slide img,.portfolio-root .baltimore-slide img,.portfolio-root .chicago-fulton-slide img,.portfolio-root .scala-slide img,.portfolio-root .sala-espera-slide img,.portfolio-root .swiss-books-slide img,.portfolio-root .spetris-slide img,.portfolio-root .fresan-slide img{object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block}@media(max-width:640px){.portfolio-root .charlotte-slide,.portfolio-root .whistler-slide,.portfolio-root .quicentro-slide,.portfolio-root .atlanta-slide,.portfolio-root .baltimore-slide,.portfolio-root .chicago-fulton-slide,.portfolio-root .scala-slide,.portfolio-root .sala-espera-slide,.portfolio-root .swiss-books-slide,.portfolio-root .spetris-slide,.portfolio-root .fresan-slide{height:260px}}.more-info-text{color:#0a0a0a;padding-top:8px;font-family:IBM Plex Mono,monospace;font-size:13px;line-height:1.7}.portfolio-root .resume-pdf-wrap{background:var(--p-white);text-align:center;margin:0 60px 24px}.portfolio-root .resume-page{border:1px solid var(--p-light-gray);width:100%;max-width:900px;height:auto;margin:0 auto 16px;display:block}.portfolio-root .resume-pdf{border:0;width:100%;height:90vh;display:block}@media(max-width:900px){.portfolio-root .resume-pdf-wrap{margin:0 24px 24px}.portfolio-root .resume-pdf{height:80vh}}
