
/* PAGE-SPECIFIC: Contact
   1) Hero: an envelope; a drawing sheet slides out, unfolds and a small steel frame draws on it, then a
      yellow QUOTE tag (plays once, then holds).
   2) Contact cards, the What to send section (list + three steps) and its frame: PDF, DWG, IFC and ZIP
      sheets drop into a tray (10s loop). .how-intro is not used on this page.
   Base styles show the finished state, so the shared reduced-motion rule leaves complete drawings. */
.ct-hero{width:100%;height:auto;max-height:470px;margin-left:auto}
.ct-hero rect,.ct-hero path,.ct-hero line,.ct-hero polyline{fill:none;stroke:var(--art-on-light);stroke-width:1.2;stroke-linejoin:round}
.ct-hero .ct-sheet rect{fill:var(--paper)}
.ct-hero .g{stroke:var(--line-light);stroke-width:.7}
.ct-hero .fold{stroke:var(--ink-muted);stroke-dasharray:3 3;stroke-width:.8}
.ct-hero .fr{stroke-width:1.6;stroke-dasharray:1;animation:hf-draw .5s var(--ease-draw) var(--d) both}
.ct-hero .ct-env-front path{fill:var(--off-white)}
.ct-hero .ct-env-front .seam{fill:none;stroke-width:.8}
.ct-hero .ct-env-back rect{fill:var(--off-white)}
.ct-hero text{font-family:var(--font-mono);font-size:7.4px;font-weight:500;letter-spacing:.06em;fill:var(--ink-muted)}
.ct-hero .ct-tag rect{fill:var(--yellow);stroke:var(--black);stroke-width:.6}
.ct-hero .ct-tag line{stroke:var(--black);stroke-width:.6}
.ct-hero .ct-tag text{fill:var(--black);font-weight:600;font-size:9px}
.ct-sheet{animation:ct-slide .9s var(--ease-out) .6s both}
.ct-sheet .half-r{transform-box:fill-box;transform-origin:0 50%;animation:ct-unfold .6s var(--ease-out) 1.6s both}
.ct-tag{transform-box:fill-box;transform-origin:center;animation:ct-stamp .45s var(--ease-out) 3.6s both}
@keyframes ct-slide{from{transform:translateY(210px)}to{transform:none}}
@keyframes ct-unfold{from{transform:scaleX(0)}to{transform:none}}
@keyframes ct-stamp{from{opacity:0;transform:scale(1.8)}to{opacity:1;transform:none}}
.ct-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}
.ct-card{border:1px solid var(--line-light);background:var(--paper);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);min-height:240px}
.ct-card .ico{width:40px;height:40px;fill:none;stroke:var(--black);stroke-width:1.2;stroke-linejoin:round}
.ct-card h3{margin-top:var(--space-2)}
.ct-card a.ct-val,.ct-card address{font-style:normal;font-size:var(--fs-body);margin-top:auto}
.ct-card a.ct-val{font-family:var(--font-mono);font-size:var(--fs-label-lg);overflow-wrap:anywhere;text-underline-offset:3px}
@media (max-width:1080px){.ct-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.ct-grid{grid-template-columns:1fr}}
.send-list{list-style:none;margin:var(--space-4) 0 0;padding:0}
.send-list li{display:flex;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--line-dark-strong);color:var(--off-white)}
.send-list li::before{content:"";width:8px;height:8px;background:var(--yellow);flex:none;margin-top:8px}
.facts.cols-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1080px){.facts.cols-3{grid-template-columns:1fr}}
.ct-files{width:100%;height:auto}
.ct-files .ln{fill:none;stroke:var(--art-on-dark);stroke-width:1.3;stroke-linejoin:round}
.ct-files .faint{opacity:.4}
.cf-f path{fill:var(--black-raised);stroke:var(--art-on-dark);stroke-width:1.2;stroke-linejoin:round}
.cf-f .thin{fill:none;stroke-width:.8;opacity:.7}
.cf-tag{fill:var(--yellow)}
.cf-f text{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;fill:var(--black)}
.cf-f.f0{animation:cf-f0 10s cubic-bezier(.3,.8,.3,1) infinite}.cf-f.f1{animation:cf-f1 10s cubic-bezier(.3,.8,.3,1) infinite}.cf-f.f2{animation:cf-f2 10s cubic-bezier(.3,.8,.3,1) infinite}.cf-f.f3{animation:cf-f3 10s cubic-bezier(.3,.8,.3,1) infinite}@keyframes cf-f0{0%,6%{opacity:0;transform:translateY(-130px)}15%,90%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}@keyframes cf-f1{0%,19%{opacity:0;transform:translateY(-130px)}28%,90%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}@keyframes cf-f2{0%,32%{opacity:0;transform:translateY(-130px)}41%,90%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}@keyframes cf-f3{0%,45%{opacity:0;transform:translateY(-130px)}54%,90%{opacity:1;transform:none}97%,100%{opacity:0;transform:none}}
