/* ==========================================================================
   motion.css — افتتاحية الشعار + معرض الأعمال ثلاثي الأبعاد
   مستوحى من حركة مواقع الاستوديوهات الإبداعية. الألوان من متغيرات :root فقط.
   ========================================================================== */
:root{
  --night:#0f0e0b;          /* خلفية أقسام الحركة الداكنة */
  --night-line:rgba(244,242,238,.09);
  --paper:#f4f2ee;          /* نص فاتح على الداكن */
}

/* ---------------- 1) INTRO ---------------- */
#intro{
  position:fixed;inset:0;z-index:200;background:var(--night);color:var(--paper);
  display:grid;place-items:center;overflow:hidden;cursor:pointer;
  clip-path:inset(0 0 0 0);
  transition:clip-path 1s var(--ease);
}
#intro.out{clip-path:inset(0 0 100% 0)}
html.intro-lock,html.intro-lock body{overflow:hidden}

#intro .in-grid{position:absolute;inset:0;width:100%;height:100%}
#intro .in-grid line{
  stroke:rgba(244,242,238,.26);stroke-width:1;fill:none;
  stroke-dasharray:var(--len);stroke-dashoffset:var(--len);
  animation:inDraw .75s var(--ease) forwards;animation-delay:var(--d);
  vector-effect:non-scaling-stroke;
}
#intro .in-grid line.leg{stroke:rgba(244,242,238,.5)}
#intro.flash .in-grid{opacity:.35;transition:opacity .6s}
@keyframes inDraw{to{stroke-dashoffset:0}}

/* mosaic tiles that burst with colour at the "flash" */
#intro .in-tiles{position:absolute;inset:-2px;display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-auto-rows:1fr;opacity:0}
#intro .in-tiles i{border:1px solid rgba(244,242,238,.05);background:var(--c);opacity:0;transform:scale(.6)}
#intro.flash .in-tiles{opacity:1}
#intro.flash .in-tiles i{animation:tile .9s var(--ease) forwards;animation-delay:var(--d)}
@keyframes tile{
  0%{opacity:0;transform:scale(.6)}
  35%{opacity:var(--o);transform:scale(1)}
  100%{opacity:calc(var(--o) * .22);transform:scale(1)}
}
#intro.calm .in-tiles{opacity:0;transition:opacity .7s}

#intro .in-center{position:relative;display:flex;flex-direction:column;align-items:center;gap:26px;z-index:2}
#intro .in-mark{width:clamp(92px,11vw,150px);height:auto;overflow:visible}
#intro .in-mark .sq{fill:transparent;stroke:var(--paper);stroke-width:2;stroke-dasharray:640;stroke-dashoffset:640;animation:inDraw .7s var(--ease) .15s forwards}
#intro .in-mark .a{fill:none;stroke:var(--paper);stroke-width:9;stroke-linecap:square;stroke-linejoin:miter;stroke-dasharray:260;stroke-dashoffset:260;animation:inDraw .55s var(--ease) .4s forwards}
#intro.flash .in-mark .sq{fill:var(--accent-2);stroke:var(--accent);transition:fill .4s,stroke .4s}
#intro.flash .in-mark .a{stroke:var(--accent);transition:stroke .3s}
#intro.flash .in-mark{animation:jolt .5s steps(2) 1}
@keyframes jolt{0%{transform:translate(3px,-2px)}50%{transform:translate(-3px,2px)}100%{transform:none}}

#intro .in-word{text-align:center;line-height:1;opacity:0;transform:translateY(18px)}
#intro .in-word .w-ar{display:block;font-family:var(--ff-ar);font-weight:800;font-size:clamp(46px,8vw,104px)}
#intro .in-word .w-en{display:block;margin-block-start:14px;font-family:var(--ff-en);font-weight:600;letter-spacing:.9em;font-size:clamp(11px,1.2vw,14px);opacity:.7;padding-inline-start:.9em}
#intro.flash .in-word{opacity:1;transform:none;transition:opacity .5s,transform .9s var(--ease)}
#intro.flash .in-word .w-ar{animation:chroma 1.1s steps(9) 1}
#intro.flash .in-word .w-en{letter-spacing:.42em;transition:letter-spacing 1.2s var(--ease)}
@keyframes chroma{
  0%  {text-shadow:-9px 0 #ff2d6f, 9px 0 #29e3ff;transform:skewX(-8deg)}
  25% {text-shadow:6px 0 #ff2d6f,-6px 0 #29e3ff;transform:skewX(4deg)}
  50% {text-shadow:-3px 0 var(--accent),3px 0 #29e3ff;transform:none}
  100%{text-shadow:none}
}

#intro .in-meta{position:absolute;inset-block-end:28px;inset-inline:28px;display:flex;justify-content:space-between;font-family:var(--ff-en);font-size:12px;letter-spacing:.16em;opacity:.55;direction:ltr}
#intro .in-bar{position:absolute;inset-block-end:0;inset-inline-start:0;height:2px;background:var(--accent);width:0;transition:width .2s linear}

/* site content eases in behind the wipe */
body.intro-reveal .hero .stage,body.intro-reveal .hero-foot{animation:heroIn 1.3s var(--ease) both}
@keyframes heroIn{from{opacity:0;transform:translateY(40px) scale(.98)}to{opacity:1;transform:none}}

/* ---------------- 2) WORKS 3D ---------------- */
.wk3d{position:relative;background:var(--night);color:var(--paper);height:calc(100vh + var(--n,5) * 70vh)}
.wk-pin{position:sticky;inset-block-start:0;height:100vh;height:100svh;overflow:hidden;perspective:1500px;perspective-origin:50% 46%}

/* faint architectural grid in the background */
.wk-bg{position:absolute;inset:0;
  background-image:linear-gradient(var(--night-line) 1px,transparent 1px),linear-gradient(90deg,var(--night-line) 1px,transparent 1px);
  background-size:calc(100% / 12) calc(100% / 7);
  mask-image:radial-gradient(90% 75% at 50% 50%,#000 30%,transparent 85%);
  -webkit-mask-image:radial-gradient(90% 75% at 50% 50%,#000 30%,transparent 85%);
}
.wk-glow{position:absolute;inset:0;background:radial-gradient(45% 40% at 50% 48%,rgba(183,243,107,.10),transparent 70%)}
/* static backdrops get their own layers — otherwise the masked grid and the glow repaint on every frame of the ring */
.wk-bg,.wk-glow{will-change:transform}

/* giant word behind the ring */
.wk-word{position:absolute;inset-inline:0;inset-block-start:50%;transform:translateY(-50%);text-align:center;pointer-events:none;white-space:nowrap;
  font-weight:800;line-height:.9;color:transparent;-webkit-text-stroke:1px rgba(244,242,238,.22);will-change:transform,opacity}
.wk-word .ar-t{font-family:var(--ff-ar);font-size:clamp(90px,22vw,340px)}
.wk-word .en-t{font-family:var(--ff-en);font-size:clamp(80px,19vw,300px);letter-spacing:-.03em}

.wk-head{position:absolute;inset-block-start:96px;inset-inline:0;z-index:5}
.wk-head .eyebrow{color:rgba(244,242,238,.6)}
.wk-head .eyebrow::before{background:rgba(244,242,238,.6)}
.wk-head .sec-head{color:var(--paper)}

.wk-scene{position:absolute;inset:0;padding-block-start:56px;transform-style:preserve-3d;display:grid;place-items:center}
.wk-ring{position:relative;width:var(--cw);height:var(--ch);transform-style:preserve-3d;will-change:transform}
.wk-card{position:absolute;inset:0;border-radius:14px;overflow:hidden;backface-visibility:hidden;transform-style:preserve-3d;
  background:#1a1914;box-shadow:0 40px 80px -30px rgba(0,0,0,.8)}
.wk-card .wk-shade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;border-radius:inherit}
.wk-card img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.12);transition:transform 1.2s var(--ease)}
.wk-card.on img{transform:scale(1.02)}
.wk-card::after{content:"";position:absolute;inset:0;border:1px solid rgba(244,242,238,.14);border-radius:inherit;pointer-events:none}
.wk-card .wk-n{position:absolute;inset-block-start:16px;inset-inline-start:18px;font-family:var(--ff-en);font-size:12px;letter-spacing:.14em;color:#fff;opacity:.8;direction:ltr}

.wk-info{position:absolute;inset-block-end:88px;inset-inline:0;z-index:5;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.wk-cap{overflow:hidden;min-height:64px}
.wk-cap .tag{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-block-end:8px}
.wk-cap .wt{display:block;font-size:clamp(20px,2.4vw,30px);font-weight:700}
.wk-cap.swap{animation:capIn .7s var(--ease)}
@keyframes capIn{from{transform:translateY(100%);opacity:0}to{transform:none;opacity:1}}
.wk-idx{font-family:var(--ff-en);font-size:13px;letter-spacing:.16em;direction:ltr;display:flex;align-items:center;gap:14px;color:rgba(244,242,238,.7)}
.wk-idx b{color:var(--paper);font-weight:600}
.wk-prog{width:120px;height:1px;background:rgba(244,242,238,.2);position:relative}
.wk-prog i{position:absolute;inset-block:0;inset-inline-start:0;background:var(--accent);width:0}

/* ---- hero variant: the 3D gallery IS the hero ---- */
.hero.wk-hero{display:block;min-height:0;padding:0;overflow:visible;gap:0;height:calc(100vh + var(--n,5) * 45vh)}
.wk-hero .wk-scene{padding-block:96px 230px}
.wk-hero .hero-foot{position:absolute;inset-inline:0;inset-block-end:96px;z-index:6}
.wk-hero .badge{z-index:6}
.wk-side{display:flex;flex-direction:column;align-items:flex-end;gap:18px}
.wk-word>span:only-child{font-family:var(--ff-en);font-size:clamp(80px,19vw,300px);letter-spacing:-.03em}

/* short laptop screens: a smaller headline leaves the gallery more room */
@media (min-width:901px) and (max-height:760px){
  .wk-hero .hero-title{font-size:clamp(30px,3.6vw,46px)}
  .wk-hero .hero-foot{inset-block-end:84px}
}

/* header turns dark while the dark gallery is under it */
body.on-dark header.solid{background:rgba(15,14,11,.72);border-color:rgba(244,242,238,.1);color:var(--paper)}
body.on-dark header.solid .lang-btn{color:var(--paper);border-color:rgba(244,242,238,.3)}
body.on-dark header.solid .burger span{background:var(--paper)}

/* phones */
@media (max-width:900px){
  .wk3d{height:calc(100vh + var(--n,5) * 60vh)}
  .wk-pin{perspective:900px}
  .wk-head{inset-block-start:84px}
  .wk-info{flex-direction:column;align-items:flex-start;gap:14px;inset-block-end:92px}
  .wk-scene{padding-block-start:30px}
  .hero.wk-hero{height:calc(100vh + var(--n,5) * 40vh)}
  .wk-hero .wk-scene{padding-block:40px 250px}
  .wk-hero .hero-foot{inset-block-end:92px}
  .wk-side{flex-direction:row-reverse;align-items:center;justify-content:space-between;width:100%}
}

/* no motion: a plain horizontal row, nothing pinned */
.wk3d.still{height:auto;padding-block:100px}
.hero.wk-hero.still{height:auto;padding-block:120px 60px}
.wk-hero.still .hero-foot{position:relative;inset:auto;margin-block-start:40px}
.wk3d.still .wk-pin{position:relative;height:auto;overflow:visible;perspective:none}
.wk3d.still .wk-head{position:relative;inset:auto;margin-block-end:40px}
.wk3d.still .wk-word,.wk3d.still .wk-info{display:none}
.wk3d.still .wk-scene{position:relative;display:block}
.wk3d.still .wk-ring{width:auto;height:auto;display:flex;gap:18px;overflow-x:auto;padding-inline:26px;scroll-snap-type:x mandatory}
.wk3d.still .wk-card{position:relative;flex:0 0 min(80vw,520px);aspect-ratio:16/10;scroll-snap-align:center}
.wk3d.still .wk-card img{transform:none}
