.carousel{width:100%;overflow:hidden}.carousel__track{display:flex;width:100%;will-change:transform}.carousel__panel{flex:0 0 100%;min-width:100%}.carousel-nav{display:flex;align-items:center;justify-content:center;gap:10px;height:24px}.carousel-nav.is-hidden{display:none}.carousel-nav-btn{display:flex;align-items:center;justify-content:center;padding:0 6px;height:24px;background:transparent;border:none;cursor:pointer;transition:color .2s ease,opacity .2s ease}.carousel-nav-dot{width:7px;height:7px;padding:0;border:none;border-radius:999px;cursor:pointer;transition:transform .2s ease,background .2s ease}.carousel-nav-dot.is-active{transform:scale(1.15)}.carousel--project{position:relative;height:40vh}.carousel--project .carousel__track{height:100%;transition:transform .6s ease}.carousel--project .carousel__panel{height:100%;position:relative;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end}.carousel--project .carousel__panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#00000085,#00000047)}.carousel--project .carousel__panel>.inner{position:relative;z-index:2;padding-bottom:48px}.carousel--project .carousel-nav{position:absolute;bottom:12px;left:0;right:0;z-index:3}.carousel-nav--light .carousel-nav-btn{color:#fffc}.carousel-nav--light .carousel-nav-btn:hover{color:#fff}.carousel-nav--light .carousel-nav-dot{background:#ffffff73}.carousel-nav--light .carousel-nav-dot.is-active{background:#fff}.carousel--areas{transition:height .46s ease}.carousel--areas .carousel__track{align-items:flex-start;transition:transform .46s ease}.carousel--areas .carousel__panel{display:flex;flex-direction:column;gap:var(--space-lg)}.carousel--updates{overflow:clip;overflow-clip-margin:8px;padding-block:1px;box-sizing:border-box;touch-action:pan-y}.carousel--updates .carousel__track{flex-wrap:nowrap;align-items:stretch;min-width:100%}.carousel--updates .carousel__panel{max-width:100%;display:flex;align-items:stretch}.carousel--updates .carousel-nav{margin-top:8px}.carousel-nav--dark .carousel-nav-btn{color:var(--color-text);font-size:var(--font-size-xl)}.carousel-nav--dark .carousel-nav-btn:hover{color:#555}.carousel-nav--dark .carousel-nav-dot{background:var(--color-border)}.carousel-nav--dark .carousel-nav-dot.is-active{background:var(--color-text)}@media (max-width: 420px){.carousel-nav--dark .carousel-nav-btn{display:none}}body.home .navbar{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;transition:transform .35s ease,background .35s ease,backdrop-filter .35s ease,-webkit-backdrop-filter .35s ease,box-shadow .35s ease,color .35s ease}body.home .main{padding-top:clamp(56px,7vw,96px)}body.home .brand,body.home .nav-links a,body.home .nav-hamburger{color:var(--color-text);transition:color .35s ease}body.home .brand:hover,body.home .nav-links a:hover{color:#555}body.home .nav-links a.active{color:var(--color-text)}body.home .navbar.nav-over-project .brand,body.home .navbar.nav-over-project .nav-links a,body.home .navbar.nav-over-project .nav-hamburger{color:#fff}body.home .navbar.nav-over-project .brand:hover,body.home .navbar.nav-over-project .nav-links a:hover{color:#ffffffd1}body.home .navbar.nav-over-project .nav-links a.active{color:#fff}body.home .navbar.nav-scrolled{background:#ffffff1a;backdrop-filter:blur(10px) saturate(110%);-webkit-backdrop-filter:blur(10px) saturate(110%)}body.home .navbar.nav-open.nav-over-project{background:#ffffff9e;backdrop-filter:blur(10px) saturate(110%);-webkit-backdrop-filter:blur(10px) saturate(110%)}body.home .navbar.nav-open.nav-over-project .brand,body.home .navbar.nav-open.nav-over-project .nav-links a,body.home .navbar.nav-open.nav-over-project .nav-hamburger{color:var(--color-text)}body.home .navbar.nav-open.nav-over-project .brand:hover,body.home .navbar.nav-open.nav-over-project .nav-links a:hover{color:#555}body.home .brand-logo-wrap{position:relative;display:inline-flex;height:44px}body.home .brand-logo--w,body.home .brand-logo--d{transition:opacity .35s ease}body.home .brand-logo--d{position:absolute;top:0;left:0;opacity:0}body.home .navbar.nav-over-project .brand-logo--w{opacity:0}body.home .navbar.nav-over-project .brand-logo--d,body.home .navbar.nav-open.nav-over-project .brand-logo--w{opacity:1}body.home .navbar.nav-open.nav-over-project .brand-logo--d{opacity:0}.project-content{color:#fff;max-width:600px;display:flex;flex-direction:column;gap:10px}.project-subtitle{color:#ffffffd1}.project-title{color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.35)}.project-desc{color:#ffffffeb;text-shadow:0 2px 8px rgba(0,0,0,.28)}.areas-tab{justify-content:center;min-width:76px}.areas-tab .tab-short,.areas-tab .tab-full{display:inline-flex;justify-content:center;overflow:hidden;white-space:nowrap}.areas-tab .tab-short{max-width:8em;opacity:1;transition:max-width .35s ease,opacity .2s ease}.areas-tab .tab-full{max-width:0;opacity:0;transition:max-width .42s ease,opacity .28s ease .08s}.areas-tab.active .tab-short{max-width:0;opacity:0}.areas-tab.active .tab-full{max-width:30em;opacity:1}.updates-slot{flex:0 0 auto;max-width:100%;padding-inline:8px;box-sizing:border-box}.updates-slot .card--update{position:relative;width:100%;max-width:none;height:420px;border-color:transparent;overflow:hidden}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000075;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease}.modal-overlay.is-open{opacity:1;pointer-events:auto}.modal-dialog{background:var(--color-bg);border-radius:var(--radius-md);width:min(480px,calc(100vw - 48px));max-height:85vh;overflow-y:auto;position:relative;transform:translateY(20px);transition:transform .3s ease;display:flex;flex-direction:column;padding:44px 28px 32px;gap:20px}.modal-overlay.is-open .modal-dialog{transform:translateY(0)}.modal-close{position:absolute;top:10px;right:12px;background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--color-text-gs);padding:4px 8px;z-index:1;transition:color .15s ease}.modal-close:hover{color:var(--color-text)}.modal-dialog .media{height:260px;background:#fff;position:relative;overflow:hidden}.modal-dialog .media img{position:absolute;top:0;left:50%;transform:translate(-50%);height:100%;width:auto;max-width:none;display:block}.modal-dialog .info{gap:10px}body.modal-open{overflow:hidden}@media (max-width: 500px){.modal-overlay{align-items:flex-end}.modal-dialog{width:100%;max-height:90vh;border-radius:var(--radius-md) var(--radius-md) 0 0;transform:translateY(100%)}}.updates-slot .card--update .media{flex:0 0 200px;height:200px;aspect-ratio:unset;background:#fff}.updates-slot .card--update .media img{position:absolute;top:0;left:50%;transform:translate(-50%);height:100%;width:auto;max-width:none;object-fit:unset}.updates-slot .card--update .info{flex:1;overflow:hidden;position:relative}.updates-slot .card--update .info:after{content:"";position:absolute;bottom:0;left:0;right:0;height:72px;background:linear-gradient(to bottom,transparent,var(--color-bg));pointer-events:none}.updates-slot .card--update:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;border:1px solid var(--color-border);border-radius:inherit}.updates-slot .card--update:hover:after{border-color:var(--color-border-strong)}.contact{display:grid;gap:var(--space-md);align-items:start;grid-template-columns:repeat(2,minmax(0,420px))}.contact-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:start}.contact-label{font-size:14px;font-weight:400;color:var(--color-text-gd);line-height:1.7}.contact-value{font-size:14px;font-weight:400;color:var(--color-text-gs);line-height:1.7}.contact-wrap{display:flex;flex-direction:column;gap:var(--space-md);width:100%;max-width:420px}.contact-wrap-map{width:100%;max-width:420px;aspect-ratio:4 / 3;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:#f6f7f8}.contact-map{width:100%;height:100%;border:0;display:block}@media (max-width: 768px){body.home .brand-logo-wrap{height:38px}.contact{grid-template-columns:1fr;gap:20px}}@media (max-width: 480px){body.home .brand-logo-wrap{height:32px}}
