.contact-page{--contact-gold:var(--theme-accent);--contact-gold-soft:var(--theme-accent-soft);--contact-bg:var(--theme-bg-elevated);--contact-surface:var(--theme-surface-raised);--contact-surface-raised:var(--theme-surface-raised);--contact-text:var(--theme-text-secondary);--contact-muted:var(--theme-muted);background:var(--contact-bg);color:var(--contact-text);min-height:100vh;overflow-x:hidden}.contact-hero{background:var(--theme-gradient-hero);justify-content:center;align-items:center;min-height:72vh;padding:6rem 1.5rem 4rem;display:flex;position:relative;overflow:hidden}.contact-hero-vignette{z-index:1;background:var(--theme-gradient-hero-alt);pointer-events:none;position:absolute;inset:0}.contact-construction{z-index:0;pointer-events:none;height:min(46vh,300px);position:absolute;bottom:0;left:0;right:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 50%);mask-image:linear-gradient(#0000 0%,#000 50%)}.contact-construction-svg{opacity:0;width:100%;height:100%;transition:opacity 1s .2s;display:block}.contact-page--mounted .contact-construction-svg{opacity:.9}.contact-build-ground{stroke:var(--contact-gold);stroke-width:2px;stroke-dasharray:900;stroke-dashoffset:900px;opacity:.45}.contact-page--mounted .contact-build-ground{animation:1.4s cubic-bezier(.4,0,.2,1) .2s forwards contactDrawLine}@keyframes contactDrawLine{to{stroke-dashoffset:0}}.contact-building{opacity:0;transform:scaleY(0)}.contact-page--mounted .contact-building--a{animation:1.1s cubic-bezier(.22,1,.36,1) .4s forwards contactBuildingRise}.contact-page--mounted .contact-building--b{animation:1.2s cubic-bezier(.22,1,.36,1) .6s forwards contactBuildingRise}.contact-page--mounted .contact-building--c{animation:1s cubic-bezier(.22,1,.36,1) .8s forwards contactBuildingRise}@keyframes contactBuildingRise{to{opacity:1;transform:scaleY(1)}}.contact-building-shell{fill:var(--theme-accent-04);stroke:var(--theme-accent-50);stroke-width:1.5px}.contact-building-core{fill:var(--theme-accent-08);stroke:var(--theme-accent-35);stroke-width:1px}.contact-building-floor{stroke:var(--theme-accent-20);stroke-width:.75px;opacity:0}.contact-page--mounted .contact-building-floor{animation:.4s forwards contactFloorIn;animation-delay:calc(1.2s + var(--floor-i) * 70ms)}@keyframes contactFloorIn{to{opacity:1}}.contact-scaffold-line{stroke:var(--theme-accent-35);stroke-width:.75px;stroke-dasharray:200;stroke-dashoffset:200px}.contact-page--mounted .contact-scaffold-line{animation:1.2s 1s forwards contactDrawLine}.contact-crane-mast{stroke:var(--contact-gold);stroke-width:2.5px;stroke-dasharray:230;stroke-dashoffset:230px}.contact-page--mounted .contact-crane-mast{animation:1s .55s forwards contactDrawLine}.contact-crane-jib,.contact-crane-counter{stroke:var(--contact-gold);stroke-width:2px;opacity:0}.contact-page--mounted .contact-crane-jib,.contact-page--mounted .contact-crane-counter{animation:.6s 1.15s forwards contactCranePartIn}.contact-crane-jib-group{transform-origin:720px 58px;opacity:0}.contact-page--mounted .contact-crane-jib-group{opacity:1;animation:8s ease-in-out 1.5s infinite contactCraneSway}@keyframes contactCraneSway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}@keyframes contactCranePartIn{to{opacity:1}}.contact-crane-hook-group{opacity:0}.contact-page--mounted .contact-crane-hook-group{opacity:1;animation:3.5s ease-in-out 1.6s infinite contactHookBob}.contact-crane-cable{stroke:var(--theme-accent-50);stroke-width:1px}.contact-crane-hook{fill:var(--contact-gold)}.contact-lift-load{fill:var(--theme-accent-50);stroke:var(--contact-gold);stroke-width:.75px}@keyframes contactHookBob{0%,to{transform:translateY(0)}50%{transform:translateY(14px)}}.contact-dust{width:80px;height:80px;position:absolute;bottom:18%;right:22%}.contact-dust-particle{background:var(--theme-accent-45);opacity:0;width:3px;height:3px;left:calc(var(--dust-i) * 18%);border-radius:1px;position:absolute}.contact-page--mounted .contact-dust-particle{animation:2.8s ease-out infinite contactDust;animation-delay:calc(2s + var(--dust-i) * .35s)}@keyframes contactDust{0%{opacity:0;transform:translateY(0)}15%{opacity:.7}to{opacity:0;transform:translateY(-50px) translateX(calc(var(--dust-i) * 6px - 12px))}}.contact-hero-content{z-index:2;text-align:center;max-width:720px;position:relative}.contact-hero-eyebrow{font-family:var(--font-body), var(--font-body-fallback);letter-spacing:.28em;text-transform:uppercase;color:var(--contact-gold);opacity:0;margin:0 0 1rem;font-size:.7rem;font-weight:600;transform:translateY(20px)}.contact-page--mounted .contact-hero-eyebrow{animation:.9s cubic-bezier(.22,1,.36,1) .2s forwards contactFadeUp}.contact-hero-title{font-family:var(--font-heading), var(--font-heading-fallback);letter-spacing:.04em;color:var(--contact-text);opacity:0;margin:0 0 1.25rem;font-size:clamp(3rem,10vw,5rem);font-weight:500;line-height:1.05;transform:translateY(30px)}.contact-page--mounted .contact-hero-title{animation:1s cubic-bezier(.22,1,.36,1) .35s forwards contactFadeUp}.contact-hero-lead{max-width:560px;color:var(--contact-muted);opacity:0;margin:0 auto 1.75rem;font-size:clamp(1rem,2.5vw,1.15rem);line-height:1.7;transform:translateY(24px)}.contact-page--mounted .contact-hero-lead{animation:1s cubic-bezier(.22,1,.36,1) .55s forwards contactFadeUp}.contact-hero-cta{font-family:var(--font-body), var(--font-body-fallback);letter-spacing:.14em;text-transform:uppercase;color:var(--theme-text-on-accent);background:var(--contact-gold);cursor:pointer;opacity:0;border:none;border-radius:2px;padding:.85rem 2rem;font-size:.8rem;font-weight:600;transition:background .3s,transform .3s,box-shadow .3s;display:inline-block;transform:translateY(16px)}.contact-page--mounted .contact-hero-cta{animation:.9s cubic-bezier(.22,1,.36,1) .7s forwards contactFadeUp}.contact-hero-cta:hover{background:var(--theme-accent-hover);box-shadow:0 12px 32px var(--theme-shadow-soft);transform:translateY(-2px)}.contact-hero-line{background:linear-gradient(90deg, transparent, var(--contact-gold), transparent);width:0;height:1px;margin:2.5rem auto 0}.contact-page--mounted .contact-hero-line{animation:1.2s cubic-bezier(.22,1,.36,1) .9s forwards contactLineGrow}@keyframes contactFadeUp{to{opacity:1;transform:translateY(0)}}@keyframes contactLineGrow{to{width:min(280px,60vw)}}.contact-section{max-width:1100px;margin:0 auto;padding:5rem 1.5rem}.contact-section-header{text-align:center;opacity:0;margin-bottom:3rem;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(12px)}.contact-section--in-view .contact-section-header{opacity:1;transform:translateY(0)}.contact-section-eyebrow{font-family:var(--font-body), var(--font-body-fallback);letter-spacing:.22em;text-transform:uppercase;color:var(--contact-gold);margin:0 0 .75rem;font-size:.7rem;font-weight:600}.contact-section-title{font-family:var(--font-heading), var(--font-heading-fallback);letter-spacing:.02em;color:var(--contact-text);margin:0 0 1rem;font-size:clamp(1.85rem,4.5vw,2.75rem);font-weight:500}.contact-section-desc{max-width:520px;color:var(--contact-muted);margin:0 auto;font-size:1rem;line-height:1.7}.contact-section--reach{border-top:1px solid var(--theme-border)}.contact-section--map{background:var(--theme-gradient-fade-alt);border-top:1px solid var(--theme-border);padding-bottom:6rem}.contact-section--highlight .contact-form-block{animation:2s contactFormGlow}@keyframes contactFormGlow{0%,to{box-shadow:none}40%,60%{box-shadow:0 0 0 1px var(--contact-gold-soft), 0 16px 48px var(--theme-shadow)}}.contact-main{grid-template-columns:1fr;align-items:start;gap:2rem;display:grid}@media (min-width:900px){.contact-main{grid-template-columns:minmax(260px,300px) 1fr;gap:2.5rem}}.contact-details{flex-direction:column;gap:1rem;display:flex}.contact-detail-card{color:inherit;background:var(--contact-surface);border:1px solid var(--theme-border);box-shadow:0 4px 20px var(--theme-shadow-soft);opacity:0;border-radius:4px;flex-direction:column;gap:.35rem;padding:1.75rem 1.5rem;text-decoration:none;transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1),border-color .35s,box-shadow .35s;display:flex;transform:translateY(32px)}.contact-detail-card:first-child{transition-delay:.1s}.contact-detail-card:nth-child(2){transition-delay:.2s}.contact-detail-card:nth-child(3){transition-delay:.3s}.contact-section--in-view .contact-detail-card{opacity:1;transform:translateY(0)}.contact-detail-card:hover{border-color:var(--contact-gold-soft);box-shadow:0 16px 40px var(--theme-shadow);transform:translateY(-4px)}.contact-detail-index{font-family:var(--font-heading), var(--font-heading-fallback);color:var(--contact-gold);opacity:.45;margin-bottom:.5rem;font-size:2rem;font-weight:500;line-height:1}.contact-detail-label{letter-spacing:.2em;text-transform:uppercase;color:var(--contact-gold);font-size:.68rem;font-weight:600}.contact-detail-value{font-family:var(--font-heading), var(--font-heading-fallback);color:var(--contact-text);font-size:1.1rem;font-weight:500;line-height:1.4}.contact-detail-value--sub{font-family:var(--font-body), var(--font-body-fallback);color:var(--contact-muted);font-size:.9rem;font-weight:400}.contact-form-block{opacity:0;transition:opacity .65s cubic-bezier(.22,1,.36,1) .2s,transform .65s cubic-bezier(.22,1,.36,1) .2s,box-shadow .6s .2s;transform:translateY(32px)}.contact-section--in-view .contact-form-block{opacity:1;transform:translateY(0)}.contact-page .contact-wrapper{max-width:none;margin:0;padding:0}.contact-map-frame{aspect-ratio:16/9;border:1px solid var(--theme-border-strong);opacity:0;border-radius:4px;width:100%;min-height:260px;transition:opacity .7s cubic-bezier(.22,1,.36,1) .15s,transform .7s cubic-bezier(.22,1,.36,1) .15s;position:relative;overflow:hidden;transform:translateY(24px)}.contact-section--in-view .contact-map-frame{opacity:1;transform:translateY(0)}.contact-map-embed{filter:grayscale(25%)contrast(1.05);border:0;width:100%;height:100%;transition:filter .5s;position:absolute;inset:0}.contact-map-frame:hover .contact-map-embed{filter:grayscale(0%)contrast()}@media (min-width:768px){.contact-map-frame{aspect-ratio:21/9;min-height:340px}}@media (prefers-reduced-motion:reduce){.contact-building,.contact-building-floor,.contact-scaffold-line,.contact-build-ground,.contact-crane-mast,.contact-crane-jib-group,.contact-crane-hook-group,.contact-dust-particle,.contact-hero-eyebrow,.contact-hero-title,.contact-hero-lead,.contact-hero-cta,.contact-hero-line,.contact-section-header,.contact-detail-card,.contact-form-block,.contact-map-frame{opacity:1!important;stroke-dashoffset:0!important;transition:none!important;animation:none!important;transform:none!important}}
