@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Lora:wght@400;500&family=Montserrat:wght@200;300;500;600&display=swap";.App{text-align:center;width:100%;overflow-x:hidden}html{scroll-behavior:smooth}html,body,#root,.App{overflow:visible}.app-tab-transition{transition:opacity .38s ease,transform .38s ease}.app-tab-exiting{opacity:0;transform:translateY(12px)}.app-tab-entering{opacity:0;transform:translateY(-12px)}.app-tab-entered{opacity:1;transform:translateY(0)}body{font-family:Lora,serif;color:#2e2e2e}h1,h2,h3{font-family:Montserrat,sans-serif;color:#1a1a1a}.header{position:fixed;top:0;left:0;width:100%;background-color:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 2px 8px #0000000f;z-index:1000;display:flex;justify-content:space-between;align-items:center;padding:.75rem 4.5rem;box-sizing:border-box}.header>.logo,.header>.menu{flex-shrink:0}.logo{flex:1}.menu{list-style:none;display:flex;gap:1.75rem;font-weight:500;margin:0;padding:0;white-space:nowrap}.menu a{text-decoration:none;color:#2e2e2e;font-weight:500;transition:color .2s ease-in-out}.menu a:hover{color:#555}.menu-icon{display:none}@media(max-width:768px){.header{padding:.75rem 1.25rem}.menu{position:absolute;top:60px;right:0;background:#fff;flex-direction:column;align-items:flex-start;padding:1rem 2rem;border-radius:4px;display:none;max-width:calc(100vw - 2rem);box-shadow:0 4px 12px #0000001a}.menu-open{display:flex}.menu-icon{display:block;cursor:pointer;background:none;border:none;padding:.5rem}.navicon,.navicon:before,.navicon:after{background:#1a1a1a;width:20px;height:2px;display:block;position:relative}.navicon:before,.navicon:after{content:"";position:absolute;left:0}.navicon:before{top:-6px}.navicon:after{top:6px}}.nav-link-button{background:none;border:none;color:inherit;cursor:pointer;padding:0;text-decoration:none;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:400;font-size:.95rem;letter-spacing:.01em}.nav-link-button:hover{color:#555}.nav-link-button.active{color:#1a1a1a;border-bottom:1.5px solid #1a1a1a;padding-bottom:2px}.header-back-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:.4rem 0;cursor:pointer;font-family:Montserrat,sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#2e2e2e80;margin-left:1.5rem;transition:color .15s ease}.header-back-btn:hover{color:#555}@media(max-width:768px){.header-back-btn{font-size:.7rem;margin-left:auto;margin-right:.75rem}}.about-section{background:#f7f7f7;padding:5rem 2rem;min-height:100vh;text-align:left;opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}.about-section--visible{opacity:1;transform:translateY(0)}.about-inner{max-width:1000px;margin:0 auto}.about-header{margin-bottom:4rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(0,0,0,.08)}.about-eyebrow{font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#2e2e2e73;margin:0 0 .4rem}.about-title{font-family:Montserrat,sans-serif;font-size:clamp(1.75rem,3.4vw,2.4rem);font-weight:600;letter-spacing:.02em;color:#2e2e2e;margin:0 0 1.5rem}.about-bio{font-family:Lora,serif;font-size:1rem;line-height:1.7;color:#2e2e2e;margin:0 0 1.1rem;max-width:80ch}.about-bio:last-child{margin-bottom:0}.about-meta{display:grid;grid-template-columns:1fr 1px 1fr;gap:0 3.5rem;align-items:start}.about-divider{width:1px;background:#00000014;align-self:stretch}.about-group-label{font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#2e2e2e73;margin:0 0 1rem}.about-meta-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.about-meta-item{display:flex;flex-direction:column;gap:.15rem;font-family:Lora,serif;color:#2e2e2e}.about-meta-primary{font-size:.98rem;font-weight:500}.about-meta-secondary{font-size:.9rem;color:#555}.about-meta-date{font-family:Montserrat,sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#2e2e2e73;margin-top:.2rem}@media(max-width:860px){.about-section{padding:3.5rem 1.5rem}.about-meta{grid-template-columns:1fr;gap:2.5rem 0}.about-divider{display:none}}@media(max-width:480px){.about-section{padding:3rem 1.25rem}}.skills-section{background:#f7f7f7;padding:5rem 2rem;min-height:100vh;opacity:0;transform:translateY(28px);transition:opacity .65s ease,transform .65s ease}.skills-section--visible{opacity:1;transform:translateY(0)}.skills-inner{max-width:1000px;margin:0 auto}.skills-header{margin-bottom:3.5rem;padding-bottom:1.5rem}.skills-eyebrow{font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#2e2e2e73;margin:0 0 .4rem}.skills-title{font-family:Montserrat,sans-serif;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;letter-spacing:.02em;color:#2e2e2e;margin:0}.skills-body{display:grid;grid-template-columns:1fr 1px 1fr;gap:0 3.5rem;align-items:left}.skills-divider{width:1px;background:#00000014;align-self:stretch}.skills-software{display:flex;flex-direction:column;gap:2.25rem;align-items:left;text-align:left}.skills-group{display:flex;flex-direction:column;gap:0}.skills-group-label{font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#2e2e2e73;margin:0 0 .75rem}.skills-pills{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.skills-pill{font-family:Lora,serif;font-size:.92rem;color:#2e2e2e;padding:.35rem 0;transition:color .15s ease}.skills-pill:hover{color:#555}.skills-methods{display:flex;flex-direction:column;gap:0;align-items:left;text-align:left}.skills-methods-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-items:left;gap:0}.skills-method-item{display:flex;align-items:left;gap:0;font-family:Lora,serif;font-size:.92rem;color:#2e2e2e;line-height:1.4;padding:.35rem 0;transition:color .15s ease}.skills-method-item:hover{color:#555}.skills-method-dash{display:none}@media(max-width:860px){.skills-body{grid-template-columns:1fr;gap:3rem 0}.skills-divider{display:none}.skills-section{padding:3.5rem 1.5rem}}@media(max-width:480px){.skills-section{padding:3rem 1.25rem}}.contact-section{background:#f7f7f7;color:#2e2e2e;padding:5rem 2rem 3rem;position:relative;min-height:100vh;opacity:0;transform:translateY(0);transition:opacity .7s ease}.contact-section--visible{opacity:1}.contact-rule{display:flex;align-items:center;gap:.75rem;margin-bottom:4rem;max-width:1100px;margin-left:auto;margin-right:auto}.contact-rule-line{flex:1;height:1px;background:#0000001f}.contact-rule-dot{width:5px;height:5px;border-radius:50%;background:#2e2e2eb3;flex-shrink:0}.contact-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end}.contact-eyebrow{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:#2e2e2ee6;margin:0 0 1rem}.contact-statement{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:500;line-height:1.08;letter-spacing:-.01em;text-align:left;color:#2e2e2e;margin:0 0 2rem}.contact-location{display:inline-flex;align-items:center;gap:.45rem;font-family:Lora,serif;font-size:.9rem;color:#2e2e2e80;margin:0}.contact-pin-icon{width:14px;height:14px;opacity:.6;flex-shrink:0}.contact-right{display:flex;flex-direction:column;gap:2rem}.contact-email-link{display:inline-flex;align-items:center;gap:.6rem;font-family:Lora,serif;font-size:clamp(.95rem,2vw,1.2rem);color:#2e2e2e;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:.5rem;transition:border-color .2s ease,color .2s ease}.contact-email-link:hover{border-color:#0009;color:#1a1a1a}.contact-email-arrow{opacity:.5;transition:transform .2s ease,opacity .2s ease}.contact-email-link:hover .contact-email-arrow{transform:translate(3px);opacity:1}.contact-actions{display:flex;gap:.75rem;flex-wrap:wrap}.contact-action-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1.4rem;border-radius:999px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.78rem;font-weight:600;letter-spacing:.07em;text-decoration:none;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .15s ease;background:#1a1a1a;color:#fff;border:1.5px solid #1a1a1a}.contact-action-btn:hover{background:#000;border-color:#000;transform:translateY(-2px)}.contact-action-btn--outline{background:transparent;color:#2e2e2e;border-color:#00000040}.contact-action-btn--outline:hover{border-color:#1a1a1a;color:#1a1a1a;background:transparent}.contact-footer{max-width:1100px;margin:4rem auto 0;padding-top:1.5rem;border-top:1px solid rgba(0,0,0,.08);display:flex;align-items:center;justify-content:space-between}.contact-footer-copy{font-family:Montserrat,sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#2e2e2e73;margin:0}@media(max-width:780px){.contact-inner{grid-template-columns:1fr;gap:2.5rem}.contact-section{padding:4rem 1.5rem 2.5rem}.contact-rule{margin-bottom:3rem}}@media(max-width:480px){.contact-section{padding:3rem 1.25rem 2rem}.contact-statement{font-size:clamp(1.8rem,8vw,2.5rem)}}.portfolio-section{padding:0;background:#f7f7f7;min-height:100vh;font-family:Lora,serif}.portfolio-section:has(.ps-projectShell){background:#fff}.ps-home{display:flex;flex-direction:column}.portfolio-section,.portfolio-section *{box-sizing:border-box}.ps-grid-view{max-width:1360px;margin:0 auto;padding:4rem 3rem 3rem;min-height:100vh}.ps-filters-bar{margin-bottom:2.5rem}.ps-sidebar{position:relative}.ps-sidebar-inner{position:sticky;top:80px;display:flex;flex-direction:column;gap:1.5rem}.ps-sidebar-title{margin:0;font-family:Montserrat,sans-serif;font-size:1.5rem;font-weight:600;letter-spacing:.02em;color:#2e2e2e}.ps-grid-back{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:0;padding:0;background:transparent;color:#2e2e2e73;cursor:pointer;font-family:Montserrat,sans-serif;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;font-weight:500;transition:color .15s ease;text-align:left}.ps-grid-back:hover{color:#2e2e2e}.ps-sidebar-section{display:flex;flex-direction:column;gap:.75rem}.ps-sidebar-label{font-family:Montserrat,sans-serif;font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#2e2e2e66;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.08)}.ps-filters{display:flex;flex-direction:row;gap:.25rem}.ps-filter{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;border-radius:0;padding:6px 14px;font-size:.92rem;letter-spacing:.04em;cursor:pointer;transition:color .15s ease,font-weight .15s ease;color:#2e2e2e66;font-family:Montserrat,sans-serif;font-weight:400;text-align:left;text-transform:uppercase}.ps-filter:hover{color:#2e2e2e}.ps-filter.is-active{color:#2e2e2e;font-weight:700}@media(max-width:480px){.ps-filters{flex-wrap:wrap}.ps-filter{padding:6px 10px;font-size:.78rem}}.ps-tile-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2.25rem}.ps-tile{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:0;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:.75rem}.ps-tile-media{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:#ebebeb;border-radius:4px}.ps-tile-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .35s cubic-bezier(.4,0,.2,1),opacity .3s ease}.ps-tile:hover .ps-tile-img{transform:scale(1.05)}.ps-tile-img--contain{object-fit:contain;background:#ebebeb}.ps-tile-img--placeholder{width:100%;height:100%;background-image:radial-gradient(rgba(0,0,0,.04) 1px,transparent 1px);background-size:18px 18px}.ps-tile-info{display:flex;flex-direction:column;gap:.35rem}.ps-tile-category{font-family:Montserrat,sans-serif;font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#2e2e2e66}.ps-tile-title{font-family:Montserrat,sans-serif;font-size:.92rem;font-weight:600;color:#2e2e2e;letter-spacing:.01em;line-height:1.3}.ps-tile-sub{font-family:Lora,serif;font-size:.8rem;color:#2e2e2e73}@media(max-width:1100px){.ps-tile-grid{grid-template-columns:repeat(3,1fr);gap:1.75rem}}@media(max-width:768px){.ps-tile-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media(max-width:480px){.ps-tile-grid{grid-template-columns:1fr;gap:2rem}}.ps-empty{margin-top:1rem;padding:1.25rem;background:transparent;border:none}.ps-empty p{margin:0;color:#2e2e2e80;font-family:Montserrat,sans-serif;font-size:.85rem}@media(max-width:680px){.portfolio-section{padding:2.5rem 1.25rem}}.ps-projectShell{max-width:1840px;width:100%;margin:0 auto;padding-top:.25rem}.ps-projectShell.fade-out{opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease}.ps-projectShell.fade-in{opacity:1;transform:translateY(0);transition:opacity .35s ease,transform .35s ease}#ps-project-top{scroll-margin-top:20px}.project-content.ps-case{display:block;padding:2.1rem 0;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible}.ps-project-header,.ps-gallery,.ps-nav{margin-left:8%;margin-right:8%}.ps-hero-fullwidth{position:relative;width:100%;background:#ebebeb;cursor:zoom-in;margin-bottom:0}.ps-hero-img{width:100%;height:auto;display:block}.ps-hero-titleWrap{position:sticky;bottom:0;padding:2.5rem;z-index:1;pointer-events:none}.ps-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.5) 100%);pointer-events:none}.ps-hero-title{position:relative;font-family:Montserrat,sans-serif;font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:600;letter-spacing:-.01em;color:#fff;margin:0;line-height:1.15;text-shadow:0 1px 8px rgba(0,0,0,.25)}.ps-hero-about{position:relative;font-family:Lora,serif;font-size:1.05rem;color:#fffc;margin:.4rem 0 0;text-shadow:0 1px 6px rgba(0,0,0,.2)}@media(max-width:640px){.ps-hero-titleWrap{padding:1.5rem 1.25rem}.ps-hero-title{font-size:clamp(1.4rem,5vw,1.8rem)}.ps-hero-about{font-size:.9rem}}.ps-hero-placeholder{width:100%;height:100%;background-image:radial-gradient(rgba(0,0,0,.04) 1px,transparent 1px);background-size:20px 20px}.ps-project-header{margin-top:0;margin-bottom:3rem;padding:3rem 0 0;display:grid;grid-template-columns:320px 1fr;gap:3.5rem;align-items:start}.ps-project-header--no-meta{grid-template-columns:1fr}.ps-project-title{font-family:Montserrat,sans-serif;font-size:clamp(2rem,4vw,3rem);font-weight:600;letter-spacing:-.02em;color:#2e2e2e;margin:0;line-height:1.1}.ps-project-about{font-family:Lora,serif;font-size:1.05rem;color:#2e2e2e8c;margin:.5rem 0 0}.ps-project-meta{display:grid;grid-template-columns:1fr 1fr;gap:0}.ps-meta-field:nth-child(-n+2){border-top:1px solid rgba(0,0,0,.06)}.ps-meta-field{display:flex;flex-direction:column;gap:.25rem;padding:.85rem .5rem .85rem 0;border-bottom:1px solid rgba(0,0,0,.06)}.ps-meta-label{font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#2e2e2e66}.ps-meta-value{font-family:Lora,serif;font-size:.92rem;color:#2e2e2ed9;line-height:1.4}@media(max-width:768px){.ps-project-header{grid-template-columns:1fr;gap:2rem;padding:2.5rem 0 0}.ps-project-meta{grid-template-columns:1fr}}.ps-project-desc{margin-top:0}.ps-project-desc p{font-family:Lora,serif;font-size:.97rem;line-height:1.8;color:#2e2e2ee0;margin:0;text-align:left}.ps-project-desc p+p{margin-top:1.2rem}.ps-project-quote{margin:1.5rem 0;padding:1.5rem 1.75rem;border-left:3px solid rgba(85,85,85,.35);background:#f7f7f799;border-radius:0 4px 4px 0}.ps-project-quote-text{font-family:Lora,serif;font-size:1.05rem;font-style:italic;line-height:1.75;color:#2e2e2ed9;margin:0;text-align:left}.ps-project-quote-cite{display:block;margin-top:.75rem;font-family:Montserrat,sans-serif;font-size:.78rem;font-style:normal;letter-spacing:.04em;color:#555555a6}.ps-gallery{display:grid;gap:1.75rem;margin-top:2rem;padding:0;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}.ps-figure{margin:0;grid-column:span 12}.ps-span-12{grid-column:span 12}.ps-span-9{grid-column:span 9}.ps-span-8{grid-column:span 8}.ps-span-6{grid-column:span 6}.ps-span-4{grid-column:span 4}.ps-span-3{grid-column:span 3}.ps-figure--center.ps-span-9{grid-column:3/span 9}.ps-figure--center.ps-span-8{grid-column:3/span 8}.ps-figure--center.ps-span-6{grid-column:4/span 6}.ps-figure--center.ps-span-4{grid-column:5/span 4}.ps-figure--center.ps-span-3{grid-column:5/span 3}.ps-figure--rowspan-2{grid-row:span 2}.ps-figure--rowspan-2 .ps-figure-wrap,.ps-figure--rowspan-2 .ps-figure-img{height:100%}.ps-figure--rowspan-2 .ps-figure-img{object-fit:cover}@media(max-width:980px){.ps-gallery{grid-template-columns:repeat(6,minmax(0,1fr))}.ps-span-12,.ps-span-9,.ps-span-8,.ps-span-6{grid-column:span 6}.ps-span-4,.ps-span-3{grid-column:span 3}.ps-figure--rowspan-2{grid-row:auto}.ps-figure--rowspan-2 .ps-figure-wrap,.ps-figure--rowspan-2 .ps-figure-img{height:auto}.ps-figure--rowspan-2 .ps-figure-img{object-fit:contain}}@media(max-width:640px){.ps-gallery{grid-template-columns:1fr}.ps-span-12,.ps-span-9,.ps-span-8,.ps-span-6,.ps-span-4,.ps-span-3{grid-column:span 1}}.ps-figure-img{width:100%;height:auto;display:block}.ps-figure--scrollable .ps-figure-wrap{max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.ps-figure-img--scrollable{max-height:none;object-fit:initial}.ps-gallery-section-title{grid-column:1/-1;font-family:Montserrat,sans-serif;font-size:1.05rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#2e2e2e66;margin:2rem 0 0;padding-bottom:0;padding-left:0;text-align:left;border-bottom:none}.ps-gallery-section-text{grid-column:1/-1;max-width:700px;margin:.5rem 0 0}.ps-gallery-section-text p{font-family:Lora,serif;font-size:.97rem;line-height:1.8;color:#2e2e2ee0;margin:0}.ps-gallery-section-text p+p{margin-top:1rem}.ps-figure-cap{padding:.85rem 1rem 1rem;border-top:1px solid rgba(0,0,0,.06);background:transparent;text-align:left}.ps-figure-capHead{font-family:Montserrat,sans-serif;font-size:.9rem;font-weight:600;color:#2e2e2e;margin-bottom:.25rem}.ps-figure-capText{font-size:.92rem;color:#2e2e2eb8;font-style:normal;line-height:1.6}.ps-figure.ps-figure--cap-t,.ps-figure.ps-figure--cap-b{display:flex;flex-direction:column;overflow:visible}.ps-figure.ps-figure--cap-t{flex-direction:column-reverse}.ps-figure.ps-figure--cap-l,.ps-figure.ps-figure--cap-r{display:flex;flex-direction:row;align-items:flex-start;gap:1.25rem;overflow:visible}.ps-figure.ps-figure--cap-l{flex-direction:row-reverse}.ps-figure--cap-t .ps-figure-wrap,.ps-figure--cap-r .ps-figure-wrap,.ps-figure--cap-b .ps-figure-wrap,.ps-figure--cap-l .ps-figure-wrap{overflow:hidden;border-radius:4px;flex:1 1 auto;min-width:0}.ps-figure--cap-l .ps-figure-cap,.ps-figure--cap-r .ps-figure-cap{flex:0 0 30%;border-top:none;padding:0;align-self:center}.ps-figure--cap-t .ps-figure-cap,.ps-figure--cap-b .ps-figure-cap{border-top:none;padding:.85rem 0 0}.ps-figure--cap-t .ps-figure-cap{padding:0 0 .85rem}@media(max-width:640px){.ps-figure.ps-figure--cap-l,.ps-figure.ps-figure--cap-r{flex-direction:column}.ps-figure--cap-l .ps-figure-cap,.ps-figure--cap-r .ps-figure-cap{flex:1 1 auto;padding:.85rem 0 0;align-self:stretch}}.ps-figure{position:relative}.ps-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:0;margin-top:5rem;padding:0;border-top:1px solid rgba(0,0,0,.1)}.ps-nav-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-right:1px solid rgba(0,0,0,.08);background:transparent;border-radius:0;padding:2rem;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:.6rem;transition:background .25s ease}.ps-nav-card:hover{background:#00000005}.ps-nav-card--next{text-align:right;border-right:none;border-left:1px solid rgba(0,0,0,.08)}.ps-nav-card-dir{font-family:Montserrat,sans-serif;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#2e2e2e59;transition:color .25s ease}.ps-nav-card:hover .ps-nav-card-dir{color:#2e2e2e8c}.ps-nav-card-title{font-family:Montserrat,sans-serif;font-size:1rem;font-weight:600;color:#2e2e2e;line-height:1.3;letter-spacing:.01em}.ps-nav-card-empty{min-width:0}.ps-nav-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-left:1px solid rgba(0,0,0,.08);border-right:1px solid rgba(0,0,0,.08);background:transparent;border-radius:0;padding:2rem 2.5rem;cursor:pointer;font-family:Montserrat,sans-serif;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#2e2e2e66;transition:background .25s ease,color .25s ease;white-space:nowrap}.ps-nav-btn:hover{color:#2e2e2e;background:#00000005}@media(max-width:640px){.ps-project-backrow,.ps-project-header,.ps-gallery,.ps-nav{margin-left:4%;margin-right:4%}.ps-nav{grid-template-columns:1fr;gap:0}.ps-nav-card{border-right:none;border-bottom:1px solid rgba(0,0,0,.08);padding:1.25rem .5rem}.ps-nav-card--next{text-align:left;border-left:none;border-bottom:1px solid rgba(0,0,0,.08)}.ps-nav-btn{order:-1;border-left:none;border-right:none;border-bottom:1px solid rgba(0,0,0,.08);padding:1.25rem .5rem}}.ps-figure{overflow:hidden;border-radius:4px;background:transparent;opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease}.ps-figure.is-visible{opacity:1;transform:translateY(0)}.ps-figure:nth-child(2n){transition-delay:.06s}.ps-figure-wrap{position:relative;display:block;width:100%}.ps-figure-img--clickable{cursor:zoom-in}.ps-figure-zoom{position:absolute;bottom:10px;right:10px;background:#ffffffe0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#2e2e2eb3;opacity:0;transform:scale(.85);transition:opacity .2s ease,transform .2s ease;pointer-events:none;box-shadow:0 2px 8px #0000001a}.ps-figure-wrap:hover .ps-figure-zoom{opacity:1;transform:scale(1)}.ps-figure-expand{position:absolute;top:10px;right:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;background:#ffffffe0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#2e2e2eb3;opacity:0;transform:scale(.85);transition:opacity .2s ease,transform .2s ease,background .2s ease;cursor:pointer;box-shadow:0 2px 8px #0000001a;z-index:2}.ps-figure-wrap:hover .ps-figure-expand{opacity:1;transform:scale(1)}.ps-figure-expand:hover{background:#fff;color:#2e2e2e}video.ps-figure-img,.ps-figure-img--video{animation:none;background:transparent;opacity:1}.ps-figure-img{background:linear-gradient(90deg,#ebebeb 25%,#f2f2f2,#ebebeb 75%);background-size:200% 100%;animation:shimmer 1.6s ease-in-out infinite;opacity:0;transition:opacity .4s ease}.ps-figure-img[complete],.ps-figure-img.loaded{animation:none;background:transparent;opacity:1}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ps-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0c0c0ceb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:24px;animation:lightboxFadeIn .3s cubic-bezier(.16,1,.3,1)}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lightboxFadeOut{0%{opacity:1}to{opacity:0}}.ps-lightbox--closing{animation:lightboxFadeOut .28s ease forwards}.ps-lightbox--closing .ps-lightbox-figure{animation:lightboxSlideDown .28s ease forwards}@keyframes lightboxSlideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.97)}}.ps-lightbox-figure{margin:0;max-width:calc(100vw - 120px);max-height:calc(100vh - 48px);display:flex;flex-direction:column;align-items:center;gap:14px;animation:lightboxSlideUp .35s cubic-bezier(.16,1,.3,1)}@keyframes lightboxSlideUp{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ps-lightbox-img{max-width:100%;max-height:calc(100vh - 120px);object-fit:contain;border-radius:4px;box-shadow:0 8px 40px #0006}.ps-lightbox-cap{background:#ffffff14;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:10px 16px;max-width:640px;text-align:center}.ps-lightbox-capHead{font-family:Montserrat,sans-serif;font-weight:600;font-size:.85rem;letter-spacing:.04em;margin-bottom:3px;color:#ffffffe6}.ps-lightbox-capText{font-size:.85rem;color:#ffffff8c;line-height:1.5}.ps-lightbox-close{position:absolute;top:16px;right:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff9;border-radius:4px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85rem;transition:background .2s ease,color .2s ease}.ps-lightbox-close:hover{background:#ffffff1f;color:#fff}.ps-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff9;width:42px;height:42px;border-radius:4px;cursor:pointer;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease,color .2s ease}.ps-lightbox-nav:hover{background:#ffffff1a;color:#fff}.ps-lightbox-prev:hover{transform:translateY(-50%) translate(-2px)}.ps-lightbox-next:hover{transform:translateY(-50%) translate(2px)}.ps-lightbox-prev{left:16px}.ps-lightbox-next{right:16px}.ps-lightbox-counter{position:absolute;top:18px;left:50%;transform:translate(-50%);font-family:Montserrat,sans-serif;font-size:.68rem;font-weight:600;letter-spacing:.12em;color:#ffffff73}.ps-view-transition{transition:opacity .38s ease,transform .38s ease}.ps-view-exiting{opacity:0;transform:translateY(12px)}.ps-view-entering{opacity:0;transform:translateY(-12px)}.ps-view-entered{opacity:1;transform:translateY(0)}@keyframes heroFadeUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes heroFadeIn{0%{opacity:0}to{opacity:1}}@keyframes heroLineGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes scrollPulse{0%,to{transform:scaleY(1);opacity:.3}50%{transform:scaleY(1.5);opacity:.7}}.intro-cover{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:space-between;min-height:100vh;padding:0;background:#f7f7f7;overflow:hidden}.intro-content{position:relative;z-index:1;flex:0 0 33.333%;max-width:33.333%;padding:2rem 2.5rem 2rem 4.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:2rem}.intro-media{flex:0 0 66.667%;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:3rem 4rem 3rem 2.5rem;margin:0;box-sizing:border-box;animation:heroFadeUp 1s cubic-bezier(.22,1,.36,1) both;animation-delay:.5s}.intro-media img{display:block;width:auto;height:auto;max-width:76vh;max-height:min(64vw,80vh);transform:translateY(-1.2vh) rotate(90deg);transform-origin:center center}.intro-eyebrow{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:28px;font-weight:175;letter-spacing:.08em;color:#1f1f1f;margin:0;animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) both;animation-delay:.2s}.intro-title{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;color:#2e2e2e;letter-spacing:-.02em;line-height:1;margin:5vh 0 1vh;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:.1em;animation:heroFadeUp 1s cubic-bezier(.22,1,.36,1) both;animation-delay:.35s}.intro-title-first{font-size:clamp(2.5rem,7vw,4.875rem);font-weight:450;line-height:1.2}.intro-title-last{font-size:clamp(2.4rem,6.8vw,4.75rem);font-weight:200;line-height:1}.intro-tagline{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:160;font-size:20px;color:#1f1f1f;margin:-13vh 0 0;max-width:520px;text-align:center;animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) both;animation-delay:.65s}.intro-bottom-bar{display:flex;align-items:center;gap:2.5rem;margin-top:2.5rem;animation:heroFadeUp .8s cubic-bezier(.22,1,.36,1) both;animation-delay:.8s}.intro-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#1a1a1a;border:1px solid #1a1a1a;color:#fff;padding:.55rem .8rem;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.95rem;font-weight:500;letter-spacing:.15em;text-transform:none;cursor:pointer;display:inline-flex;align-items:center;gap:.6rem;transition:background .3s ease,border-color .3s ease}.intro-button .arrow{font-size:1rem;transition:transform .25s ease}.intro-button:hover{background:#000;border-color:#000}.intro-button:hover .arrow{transform:translate(4px)}.intro-links{display:flex;gap:1rem}.intro-link{font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.72rem;font-weight:400;letter-spacing:.06em;color:#2e2e2e73;text-decoration:none;position:relative;transition:color .25s ease}.intro-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:#555;transition:width .25s ease}.intro-link:hover{color:#555}.intro-link:hover:after{width:100%}.intro-scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);animation:heroFadeIn 1s ease both;animation-delay:1.2s}.intro-scroll-line{display:block;width:1px;height:32px;background:#00000026;animation:scrollPulse 2.4s ease-in-out infinite;transform-origin:top}@media(max-width:900px){.intro-cover{flex-direction:column;align-items:flex-start;justify-content:center}.intro-content{flex:1 1 auto;max-width:100%}.intro-media{flex:1 1 auto;padding:0 1.5rem 2rem}.intro-media img{display:none}.intro-tagline{text-align:left;margin-top:0}}@media(max-width:768px){.intro-content{padding:2rem 1.5rem}.intro-bottom-bar{flex-direction:column;align-items:flex-start;gap:1.5rem}}@media(max-width:480px){.intro-content{padding:1.5rem 1.25rem}.intro-title-line--primary{font-size:clamp(2.8rem,20vw,4rem)}.intro-title-line--secondary{font-size:clamp(1.6rem,12vw,2.5rem)}.intro-links{gap:.75rem}}@font-face{font-family:Agustina Regular;font-style:normal;font-weight:400;src:local("Agustina Regular"),url(/assets/Agustina-QfTSMhmS.woff) format("woff");font-display:swap}@font-face{font-family:Montserrat;src:local("Montserrat"),url(/assets/Montserrat-Regular-dKSYcarW.ttf) format("woff");font-display:swap}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html,body{scroll-behavior:smooth}body{margin:0;font:19px/23px Montserrat,Montserrat,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:focus-visible{outline:2px solid #555555;outline-offset:2px}@media(max-width:1380px){html,body{font-size:16px;line-height:normal}}
