/* projects: rules only this page uses, plus overrides of site.css. */

.highlight{ background:linear-gradient(100deg,var(--navy) 0%,var(--cyan) 90%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.btn-primary, .tx-btn-primary .elementor-button{ display:inline-flex; align-items:center; justify-content:center; }
.page-hero-inner-center{ max-width:720px; }
.page-hero-sub{ margin:22px auto 0; max-width:580px; }
.page-hero-actions{ margin-top:30px; justify-content:center; }
.projects-section{ background:#fff; padding:clamp(56px,8vw,88px) clamp(20px,4vw,64px) clamp(64px,9vw,110px); }
.projects-container{ width:100%; max-width:1180px; min-width:0; margin:0 auto; }
.projects-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.project-card{ min-width:0; }
@media (max-width:900px){ .projects-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .projects-grid{ grid-template-columns:minmax(0,1fr); } }
.project-card{ transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s ease, border-color .4s ease, opacity .3s ease; }
.project-card.hidden{ display:none; }
.project-card{ display:block; color:inherit; text-decoration:none; }
.project-card:focus-visible{ outline:3px solid var(--cyan); outline-offset:4px; }
.project-visit{ display:inline-block; margin-top:16px; color:var(--navy); font-size:.85rem; font-weight:700; }
.project-visit span{ margin-left:4px; color:var(--cyan); }
.tx-projects-pending{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center; }
.tx-projects-pending figure{ margin:0; }
.tx-projects-pending figure img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:20px; box-shadow:0 24px 50px -30px rgba(10,30,77,.38); }
.tx-projects-pending h2{ font-family:"Sora",sans-serif; font-size:clamp(1.9rem,3vw,2.5rem); line-height:1.15; margin:12px 0 18px; }
.tx-projects-pending p:not(.tx-media-kicker){ color:var(--body-text); line-height:1.7; margin-bottom:18px; }
.tx-projects-pending ul{ display:grid; gap:10px; margin:24px 0; }
.tx-projects-pending li{ padding-left:18px; position:relative; color:var(--navy); font-weight:600; }
.tx-projects-pending li::before{ content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; border-radius:50%; background:var(--cyan); }
.tx-projects-pending .btn-primary{ display:inline-flex; margin-top:6px; }
@media (max-width:900px){ .tx-projects-pending{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){
  .project-card, .project-card-img, .filter-pill, .tx-project-card-img img{ transition:none; }
}
.cta-section{ padding:0 clamp(20px,4vw,64px) clamp(90px,11vw,130px); }
@media (max-width:480px){
  .page-hero-sub{ font-size:1rem; margin-top:16px; }
}
@media (max-width:900px){
  .cta-section{ perspective:none; }
}


/* [tx_project_deck]: real screenshots fanned in 3D; hovering the hero spreads them further. */
.pdeck{ position:relative; width:100%; max-width:560px; aspect-ratio:5/4; perspective:1400px; }
.pdeck-rig{ position:absolute; inset:0; transform-style:preserve-3d; transform:rotateX(12deg) rotateY(-30deg); transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.pdeck-card{ position:absolute; left:2%; top:16%; width:72%; margin:0; border-radius:12px; overflow:hidden; background:#10182c; box-shadow:0 30px 50px -28px rgba(10,30,77,.55), 0 0 0 1px rgba(10,30,77,.12); transform:translate3d(calc(var(--i) * 8%), calc(var(--i) * -3.5%), calc(var(--i) * -90px)); transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .8s ease; filter:brightness(calc(1 - var(--i) * .1)); z-index:calc(10 - var(--i)); }
.pdeck-card img{ display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; object-position:top; }
.pdeck-bar{ display:flex; gap:5px; padding:7px 10px; background:#1b2540; }
.pdeck-bar i{ width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.28); }
.page-hero:hover .pdeck-rig{ transform:rotateX(8deg) rotateY(-14deg); }
.page-hero:hover .pdeck-card{ transform:translate3d(calc(var(--i) * 11%), calc(var(--i) * -6%), calc(var(--i) * -120px)); filter:none; }
@media (max-width:900px){
  .pdeck{ max-width:340px; margin:0 auto; }
  .pdeck-rig, .page-hero:hover .pdeck-rig{ transform:rotateX(10deg) rotateY(-20deg); }
  .pdeck-card, .page-hero:hover .pdeck-card{ left:4%; width:66%; transform:translate3d(calc(var(--i) * 4.5%), calc(var(--i) * -3%), calc(var(--i) * -60px)); }
}
@media (prefers-reduced-motion:reduce){ .pdeck-rig, .pdeck-card{ transition:none; } }
