/* Projeler — lusion.co ana sayfası "Featured Work" bölümünün tekrarı. Ölçüler orijinalden (@1920×1080), bkz. PROJELER-DEVAM.md §1.
   Zemin kırık beyaz: .pj-canvas'ın CSS zemini (tuval yalnız bölümün ekrandaki kısmında, clip-path ile). Görseller WebGL'de, DOM kutuları saydam. */
.pj-canvas { position: fixed; inset: 0; width: 100vw; height: 100vh; display: block; z-index: 0; pointer-events: none; background: transparent; visibility: hidden; }
.pj { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 2vw; padding: clamp(30px, 4vw, 50px) max(5vw, 40px); color: #000; }
.pj::after { content: ''; clear: both; display: block; }
.pj-title-top { position: relative; grid-column: 1 / span 12; line-height: 0; }
.pj-title-wrapper { position: relative; width: fit-content; font-size: 8vw; letter-spacing: -.02em; }
.pj-title { padding-top: .5em; position: relative; display: inline-block; margin: 0 0 0 -.07em; line-height: .9; overflow: hidden; font-weight: 400; font-size: 1em; will-change: transform; white-space: nowrap; }
.pj-title .pj-w { display: inline-block; }
.pj-title .pj-c { display: inline-block; transform: translate3d(0, 100%, 0); }
.pj-disclaimer { position: absolute; right: 0; bottom: 0; width: calc(((100% - 11 * 2vw) / 12) * 3 + 2vw * 2); text-transform: uppercase; line-height: 1.4; font-size: .9vw; will-change: transform; }
.pj-disclaimer .pj-dl { position: relative; overflow: hidden; }
.pj-disclaimer .pj-dl > div { transform: translate3d(0, 100%, 0); }
.pj-list { position: relative; grid-column: 1 / span 12; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 2vw; margin-top: 8vh; }
.pj-item { position: relative; float: left; grid-column: span 6 / span 6; cursor: default; pointer-events: auto; color: inherit; text-decoration: none; }
.pj-item:nth-child(n+3) { margin-top: 5em; }
.pj-main { position: relative; padding-top: 65%; }
.pj-image { position: absolute; inset: 0; border-radius: 20px; }
.pj-footer { position: relative; width: 100%; }
.pj-alt { margin-top: 1.6vw; }
.pj-baslik { font-size: 2.3vw; line-height: 1.08; letter-spacing: -.02em; font-weight: 500; }
.pj-isler { font-family: var(--mono); font-size: 12px; letter-spacing: .02em; line-height: 1.6; opacity: .6; margin-top: 1em; }
.pj-l1 { font-size: .9vw; line-height: 1.15; margin: 1.5em 0 1em; text-transform: uppercase; white-space: nowrap; will-change: transform; }
.pj-l2 { position: relative; overflow: hidden; font-size: 3vw; line-height: 1.15; height: 1em; left: -.06em; will-change: transform; }
.pj-l2-icon { display: inline-block; position: absolute; width: .8em; height: .8em; top: .1em; left: -1em; }
.pj-l2-icon svg { display: block; width: 100%; height: 100%; }
.pj-l2-inner { position: relative; bottom: .2em; overflow: hidden; display: flex; }
.pj-l2-col { display: flex; flex-direction: column; transform: translateY(-400%); }
.pj-l2-col span { display: block; }
.pj-cta { display: flex; position: relative; place-self: center; float: left; padding: 1em 1.5em 1em 1.625em; align-items: center; gap: 1em; overflow: hidden; border-radius: 5.3125em; font-size: clamp(.875rem, 1vw, 1.75rem); background: #fff; text-transform: uppercase; height: 3.375em; box-sizing: border-box; width: fit-content; font-weight: 500; pointer-events: auto; color: #000; text-decoration: none; grid-column: 1 / span 12; margin-top: 12vh; opacity: 0; }
.pj-cta-dot { display: inline-block; position: relative; width: .5em; height: .5em; background: #000; border-radius: 100px; z-index: 1; transition: background cubic-bezier(.35,0,0,1) .5s, transform cubic-bezier(.35,0,0,1) .4s; }
.pj-cta-text { position: relative; z-index: 1; transition: color cubic-bezier(.35,0,0,1) .5s, transform cubic-bezier(.35,0,0,1) .4s; white-space: nowrap; }
.pj-cta-arrow { position: absolute; display: flex; justify-content: center; align-items: center; right: 1em; height: 1.2em; width: 1.2em; color: #1a2ffb; border-radius: 100%; transform: translate3d(3em, 0, 0); transition: transform cubic-bezier(.4,0,0,1) .4s; z-index: 1; }
.pj-cta-arrow svg { width: 100%; height: 100%; transition: color .5s; }
@media (hover: hover) {
  .pj-cta:hover { color: #fff; background: #1a2ffb; transition: background cubic-bezier(.35,0,0,1) .5s .3s; }
  .pj-cta:hover .pj-cta-text { transform: translate3d(-1.5em, 0, 0); }
  .pj-cta:hover .pj-cta-dot { transform: translate3d(4em, 0, 0) scale(32); background: #1a2ffb; }
  .pj-cta:hover .pj-cta-arrow { transform: translateZ(0); }
}
@media (min-aspect-ratio: 21 / 9) {
  .pj-title-wrapper { font-size: 5.3vw; }
  .pj-disclaimer { width: calc(((100% - 11 * 2vw) / 12) * 2 + 2vw * 2); font-size: .6vw; }
  .pj-item:nth-child(n+3) { margin-top: 10em; }
  .pj-l1 { font-size: .6vw; }
  .pj-l2 { font-size: 2vw; }
  .pj-baslik { font-size: 1.7vw; }
}
@media (max-width: 812px) {
  .pj { grid-template-columns: repeat(6, minmax(0, 1fr)); column-gap: 4vw; padding: 25px; }
  .pj-image { border-radius: 10px; }
  .pj-title-top { grid-column: 1 / span 6; }
  .pj-title-wrapper { font-size: 15vw; }
  .pj-title .pj-c { transform: none; }
  .pj-disclaimer { position: relative; font-size: 2.5vw; width: 100%; margin: 3em 0; line-height: 1.4; }
  .pj-disclaimer .pj-dl > div { transform: none; }
  .pj-list { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-column: 1 / span 6; margin-top: 0; column-gap: 4vw; }
  .pj-item:nth-child(n+3) { margin-top: 0; }
  .pj-item:not(:first-child) { margin-top: 2em; }
  .pj-l1 { font-size: 2.5vw; }
  .pj-l2 { font-size: 6.5vw; }
  .pj-alt { margin-top: 4vw; }
  .pj-baslik { font-size: 6vw; }
  .pj-isler { font-size: 11px; }
  .pj-cta { grid-column: 1 / span 6; margin-top: 4em; margin-bottom: 5em; }
}
@media (max-width: 480px) { .pj-disclaimer { font-size: 3.5vw; } }
