:root{--color-dark: #15152a;--color-cream: #f7efe6;--color-yellow: #fcc419;--color-gray: #6b6b7b;--transition-smooth: cubic-bezier(.4, 0, .2, 1)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1.5rem}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.error-state p{font-family:Neue Montreal,sans-serif;font-size:.9rem;color:var(--color-dark);opacity:.8}.loader{width:48px;height:48px;border:4px solid rgba(21,21,42,.1);border-top-color:var(--color-dark);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{font-family:Neue Montreal,sans-serif;font-size:.9rem;color:var(--color-dark);opacity:.6}.projects-list-section{background:var(--color-cream) url(/images/patron.png) repeat;min-height:100vh;padding:12vh 0 5vh}.projects-container{max-width:1600px;margin:0 auto;display:grid;grid-template-columns:45% 55%;min-height:90vh}.projects-list{padding:3rem 2rem;border-right:1px solid rgba(21,21,42,.1);display:flex;flex-direction:column}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(21,21,42,.1)}.list-count{font-family:Neue Montreal,sans-serif;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-dark);opacity:.6}.list-filters{display:flex;flex-wrap:wrap;gap:.4rem}.filter-btn{background:transparent;border:1px solid rgba(21,21,42,.2);color:var(--color-dark);padding:.4rem .85rem;border-radius:100px;font-family:Neue Montreal,sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;white-space:nowrap;transition:all .3s var(--transition-smooth)}.filter-btn:hover,.filter-btn.active{background:var(--color-dark);border-color:var(--color-dark);color:var(--color-cream)}.projects-items{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;max-height:calc(90vh - 150px);padding-right:.5rem}.projects-items::-webkit-scrollbar{width:4px}.projects-items::-webkit-scrollbar-track{background:#15152a0d}.projects-items::-webkit-scrollbar-thumb{background:#15152a33;border-radius:2px}.project-list-item{display:flex;align-items:center;gap:1.5rem;padding:1.25rem 1rem;border-radius:8px;cursor:pointer;transition:all .4s var(--transition-smooth);border:1px solid transparent}.project-list-item:hover{background:#15152a08;border-color:#15152a1a}.project-list-item.active{background:#15152a0d;border-color:var(--color-dark)}.item-number{font-family:Monument Extended,sans-serif;font-size:.65rem;color:var(--color-dark);opacity:.3;min-width:24px}.item-content{flex:1;display:flex;justify-content:space-between;align-items:center;gap:1rem}.item-main{display:flex;flex-direction:column;gap:.25rem}.item-category{font-family:Neue Montreal,sans-serif;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-dark);opacity:.5}.item-name{font-family:Monument Extended,sans-serif;font-size:clamp(.8rem,2.5vw,1.1rem);color:var(--color-dark);font-weight:600;text-transform:uppercase;letter-spacing:-.02em;word-break:break-word;overflow-wrap:break-word}.item-location{font-family:Neue Montreal,sans-serif;font-size:.7rem;color:var(--color-dark);opacity:.5}.item-meta{display:flex;align-items:center;gap:1rem}.item-status{font-family:Neue Montreal,sans-serif;font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;padding:.3rem .75rem;border-radius:100px;background:#15152a1a;color:var(--color-dark)}.item-status[data-status=active]{background:#4caf5033;color:#2e7d32}.item-status[data-status=presale]{background:#fcc4194d;color:#c17900}.item-status[data-status=building]{background:#2196f333;color:#1565c0}.item-status[data-status=development]{background:#9c27b033;color:#7b1fa2}.item-arrow{color:var(--color-dark);opacity:0;transform:translate(-10px);transition:all .3s var(--transition-smooth)}.project-list-item:hover .item-arrow,.project-list-item.active .item-arrow{opacity:1;transform:translate(0)}.project-preview{padding:3rem;position:sticky;top:0;height:90vh;background:var(--color-cream)}.preview-container{position:relative;height:100%}.preview-content{position:absolute;inset:0;opacity:0;visibility:hidden;transition:all .5s var(--transition-smooth);display:flex;flex-direction:column;gap:2rem}.preview-content.default-active,.preview-content.active{opacity:1;visibility:visible}.preview-image-link{display:block;height:45%;text-decoration:none;cursor:pointer}.preview-image{position:relative;height:100%;border-radius:12px;overflow:hidden;border:1px solid rgba(21,21,42,.1)}.preview-image.placeholder{background:#15152a08;display:flex;align-items:center;justify-content:center}.image-wrapper{width:100%;height:100%;position:relative}.image-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--transition-smooth)}.preview-content:hover .image-wrapper img{transform:scale(1.05)}.image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,rgba(21,21,42,.3) 100%)}.preview-badge{position:absolute;top:1rem;right:1rem}.badge-status{font-family:Neue Montreal,sans-serif;font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;padding:.5rem 1rem;background:var(--color-dark);color:var(--color-cream);border-radius:100px;font-weight:600}.placeholder-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.placeholder-logo{width:150px;opacity:.3}.placeholder-text{font-family:Neue Montreal,sans-serif;font-size:.9rem;color:var(--color-dark);opacity:.5}.preview-info{flex:1;display:flex;flex-direction:column;gap:1.5rem}.preview-header{border-bottom:1px solid rgba(21,21,42,.1);padding-bottom:1.5rem}.preview-category{font-family:Neue Montreal,sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--color-dark);opacity:.6;display:block;margin-bottom:.5rem}.preview-title-link{text-decoration:none;display:block;cursor:pointer}.preview-title-link:hover .preview-title{color:var(--color-yellow)}.preview-title{font-family:Monument Extended,sans-serif;font-size:clamp(1.5rem,2.5vw,2.5rem);color:var(--color-dark);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;margin-bottom:.5rem;transition:color .3s var(--transition-smooth)}.preview-location{font-family:Neue Montreal,sans-serif;font-size:.85rem;color:var(--color-dark);opacity:.6}.preview-pitch{font-family:Neue Montreal,sans-serif;font-size:.9rem;color:var(--color-dark);opacity:.8;line-height:1.6}.preview-specs{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;padding:1.5rem;background:#15152a08;border-radius:8px;border:1px solid rgba(21,21,42,.05)}.spec-item{display:flex;flex-direction:column;gap:.5rem}.spec-label{font-family:Neue Montreal,sans-serif;font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-dark);opacity:.5}.spec-value{font-family:Monument Extended,sans-serif;font-size:.75rem;color:var(--color-dark);font-weight:600}.preview-usp{display:flex;flex-direction:column;gap:1rem}.usp-label{font-family:Neue Montreal,sans-serif;font-size:.65rem;text-transform:uppercase;letter-spacing:.15em;color:var(--color-dark);opacity:.5}.usp-list{display:flex;flex-direction:column;gap:.75rem;list-style:none}.usp-item{display:flex;align-items:center;gap:.75rem;font-family:Neue Montreal,sans-serif;font-size:.8rem;color:var(--color-dark);opacity:.9}.usp-item svg{color:var(--color-dark);opacity:.6;flex-shrink:0}.preview-cta{margin-top:auto;background:var(--color-dark);border:none;color:var(--color-cream);padding:1rem 2rem;border-radius:100px;font-family:Monument Extended,sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;transition:all .3s var(--transition-smooth);text-decoration:none}.preview-cta:hover{background:var(--color-yellow);color:var(--color-dark);transform:translateY(-2px)}.placeholder-info{display:flex;align-items:center;justify-content:center}.placeholder-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;text-align:center}.ph-stat{display:flex;flex-direction:column;gap:.5rem}.ph-number{font-family:Monument Extended,sans-serif;font-size:2.5rem;color:var(--color-dark);font-weight:800}.ph-label{font-family:Neue Montreal,sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-dark);opacity:.6}.mobile-modal-overlay{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;background:#15152ad9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:flex-end;justify-content:center;padding:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--transition-smooth),visibility .3s var(--transition-smooth)}.mobile-modal-overlay.active{opacity:1;visibility:visible;pointer-events:auto}.mobile-modal{background:var(--color-cream);border-radius:0;width:100%;max-width:100%;height:100vh;height:100dvh;overflow:hidden;position:relative;transform:translateY(100%);transition:transform .35s var(--transition-smooth);display:flex;flex-direction:column}.mobile-modal-overlay.active .mobile-modal{transform:translateY(0)}.mobile-modal-close{position:fixed;top:1rem;right:1rem;top:max(1rem,env(safe-area-inset-top,0px));width:48px;height:48px;min-width:48px;min-height:48px;border-radius:50%;background:var(--color-dark);color:var(--color-cream);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10001;transition:all .2s var(--transition-smooth);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.mobile-modal-close:hover{background:var(--color-yellow);color:var(--color-dark)}.mobile-modal-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-top:0}.mobile-modal-content .preview-content{position:relative;opacity:1;visibility:visible;display:flex;padding:0;gap:0;min-height:100%}.mobile-modal-content .preview-image-link{height:32vh;height:32dvh;min-height:180px;max-height:260px;flex-shrink:0}.mobile-modal-content .preview-image{height:100%;border-radius:0;position:relative}.mobile-modal-content .preview-badge{top:1rem;right:4.5rem}.mobile-modal-content .preview-info{padding:1.25rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));gap:1rem;flex:1;display:flex;flex-direction:column}.mobile-modal-content .preview-header{padding-bottom:.75rem;flex-shrink:0}.mobile-modal-content .preview-title-link{display:block}.mobile-modal-content .preview-title{font-size:1.35rem;line-height:1.2}.mobile-modal-content .preview-pitch{font-size:.85rem;line-height:1.5;flex-shrink:0}.mobile-modal-content .preview-specs{grid-template-columns:1fr;gap:.5rem;padding:.875rem;flex-shrink:0}.mobile-modal-content .spec-item{flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem}.mobile-modal-content .preview-usp{gap:.75rem;flex-shrink:0}.mobile-modal-content .usp-list{gap:.5rem}.mobile-modal-content .usp-item{font-size:.8rem}.mobile-modal-content .preview-cta{margin-top:auto;margin-bottom:1rem;margin-bottom:calc(1rem + env(safe-area-inset-bottom,0px));padding:.875rem 1.5rem;font-size:.7rem;flex-shrink:0}@media(max-height:700px){.mobile-modal-content .preview-image-link{height:22vh;height:22dvh;min-height:140px;max-height:200px}.mobile-modal-content .preview-image{height:100%}.mobile-modal-content .preview-info{padding:1rem;gap:.75rem}.mobile-modal-content .preview-specs{padding:.75rem}}@media(max-height:550px){.mobile-modal-content .preview-image-link{height:18vh;height:18dvh;min-height:100px;max-height:150px}.mobile-modal-content .preview-image{height:100%}}@media(min-width:1025px)and (max-height:960px){.projects-list-section{padding:10vh 0 3vh}.project-preview{padding:1.5rem 2rem}.preview-content{gap:.75rem}.preview-image-link{height:34%}.preview-info{gap:.6rem}.preview-header{padding-bottom:.6rem}.preview-category{margin-bottom:.2rem;font-size:.68rem}.preview-title{font-size:clamp(1.3rem,2vw,2rem);margin-bottom:.2rem}.preview-location{font-size:.82rem}.preview-pitch{font-size:.85rem;line-height:1.45}.preview-specs{padding:.75rem 1rem;gap:.4rem}.spec-item{gap:.25rem}.spec-label{font-size:.58rem}.spec-value{font-size:.73rem}.preview-usp{gap:.4rem}.usp-list{gap:.35rem}.usp-item{font-size:.78rem;gap:.5rem}.usp-item svg{width:15px;height:15px}.preview-cta{padding:.7rem 1.5rem;font-size:.65rem;gap:.5rem}.projects-list{padding:2rem}.list-header{margin-bottom:1.25rem;padding-bottom:1rem}.list-filters{gap:.35rem}.filter-btn{padding:.35rem .7rem;font-size:.62rem}.projects-items{max-height:calc(90vh - 130px)}}@media(min-width:1025px)and (max-height:800px){.project-preview{padding:1rem 1.5rem}.preview-content{gap:.5rem}.preview-image-link{height:30%}.preview-info{gap:.5rem}.preview-header{padding-bottom:.5rem}.preview-title{font-size:clamp(1rem,1.5vw,1.5rem);margin-bottom:.15rem}.preview-pitch{font-size:.75rem;line-height:1.35}.preview-specs{padding:.6rem .75rem}.preview-cta{padding:.55rem 1rem;font-size:.58rem}.projects-list{padding:1.5rem}.projects-items{max-height:calc(90vh - 110px)}}@media(max-width:1024px){.projects-container{grid-template-columns:1fr}.projects-list{border-right:none;border-bottom:none}.projects-items{max-height:none}.project-preview{display:none}.placeholder-stats{grid-template-columns:1fr;gap:2rem}}@media(max-width:768px){.projects-list-section{padding:10vh 0 5vh}.list-header{flex-direction:column;gap:1rem;align-items:flex-start}.list-filters{width:100%;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}.list-filters::-webkit-scrollbar{display:none}.projects-list{padding:2rem 1.5rem}.item-content{flex-direction:column;align-items:flex-start;gap:.75rem}.item-meta{width:100%;justify-content:space-between}.preview-specs{grid-template-columns:1fr}.project-list-item{gap:1rem;padding:1rem .75rem}}@media(max-width:480px){.projects-list-section{padding:8vh 0 5vh}.projects-list{padding:1.5rem 1rem}.project-list-item{gap:.75rem;padding:.875rem .5rem}.item-number{min-width:20px;font-size:.6rem}.item-name{font-size:.8rem}.item-status{font-size:.55rem;padding:.25rem .6rem}.filter-btn{font-size:.65rem;padding:.35rem .8rem;white-space:nowrap}.list-count{font-size:.65rem}}@media(max-width:360px){.projects-list-section{padding:8vh 0 5vh}.projects-list{padding:1.25rem .75rem}.project-list-item{gap:.5rem;padding:.75rem .25rem}.item-name{font-size:.75rem}.item-category,.item-location{font-size:.55rem}}
